0

こんにちは私はアンドロイドの初心者です。1つのアプリケーションを作成し、設定にプリファレンスを使用します。1,10,60分に設定されたリスト設定を使用しました。次に、関数を適用して、時間間隔ごとに別のアクティビティを更新する必要があります。

beerPref2
                .setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {

                    public boolean onPreferenceChange(Preference preference,
                            Object newValue) {
                        // TODO Auto-generated method stub

                        final ListPreference listrefresh = (ListPreference) preference;
                        final int idx = listrefresh
                                .findIndexOfValue((String) newValue);

                        if (idx == 0) {

                        } else if (idx == 1) {
                            // System.out.println("2");

                        } else if (idx == 2) {
                            System.out.println("3");
                        } else {
                            System.out.println("4");
                        }

                        return true;
                    }

設定画面のコードです。今、私はDetailPageという名前の別のクラスを持っています。このクラスをリロードする必要があります。このコードを完成させてください。私は多くのことを試みましたが、できませんでした。私はAndroidを初めて使用し、これを実装したいと考えています。私を助けて、このコードを完成させてください。特定の時間間隔で別のクラスをロードするにはどうすればよいですか?つまり、1分を選択した場合、アクティビティは1分ごとにリロードする必要があります。10分を選択した場合、アプリケーションは10分ごとにリロードする必要があります...これを実装するのを手伝ってください

4

2 に答える 2

0

アクティビティでは、android の ScheduledFuture クラスを使用して、scheduleAtFixedRate 関数を使用して一定の間隔でランナブルを実行できます。詳細については、http://developer.android.com/reference/java/util/concurrent/ScheduledExecutorService.html を参照してください。

public class DetailPage extends Activity { 
    private final ScheduledExecutorService checkCurrentTime=Executors.newScheduledThreadPool(1);  
    private ScheduledFuture scheduledTimeChecker ;

    private final Runnable timeChecker = new Runnable() {       
        @Override
        public void run() {             
            doInBackground(str); 
        }
    };

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        // TODO Auto-generated method stub 
        super.onCreate(savedInstanceState); 
        startTimeSchecker();
    } 

    protected Void doInBackground(String Url) { 
        detailed_news = dh.get_detail_news(id[i],catagoryid); 
        allData.add(detailed_news); 
    } 

    private void startTimeSchecker(){        
        if(scheduledTimeChecker==null ||scheduledTimeChecker.isCancelled()){        
            scheduledTimeChecker =checkCurrentTime.scheduleAtFixedRate(timeChecker, 10, 60,java.util.concurrent.TimeUnit.SECONDS );
        }
    }
} 
于 2012-09-26T07:32:02.463 に答える
0

多分これはあなたを助けるでしょう: Handler.postDelayed

s を使用すると、将来のある時点で実行される s をHandler投稿できます。Runnable

Android のアラーム サービスに登録することもできますが、それはあなたが望むものではないと思います。

于 2012-09-26T07:12:29.140 に答える