1

私のアプリのほとんどのアクティビティには、エアストリームのタイトルにラベルがあります。基本的に、ブロードキャストが終了して別のブロードキャストが開始したときに更新する必要があり、そのスケジュールがあります。データを固定レート、たとえば1分に1回更新することもできますが、それは過剰だと思います。

特定の瞬間に更新をスケジュールしたい。更新するたびに、次の更新をスケジュールする必要があります。放送は時間範囲が異なります。

この問題に最適なものは何ですか?Handler.postDelayed、ScheduledExecutorService.schedule、または他の何か?アプリケーションが実行されていない場合はデータを更新する必要がないため、AlarmManagerはおそらくやり過ぎです。

psの時間範囲は固定されていないため、更新のたびにスケジュール時間を変更する必要があります。

ありがとう。

4

3 に答える 3

2

Handler.postDelayed遅延を変えることができるので、aを使用する方が良いオプションだと思います。あらゆる種類のタイマーを使用すると、「長さの変化」の要件と競合します。

于 2013-02-13T09:28:46.653 に答える
0

この場合、タイマーが最良の選択だと思います。TimerTaskで使用します。

于 2013-02-13T09:25:41.407 に答える
0

スレッドを使用してデータを定期的に更新できます。このスレッドは2秒間実行されます。ループ内でこの関数を呼び出すと、定期的に更新できます。

Strinh hello="HI";
    final int _splashTime = 2000; // time to display the splash screen in ms

    Thread splashTread = new Thread() {
        @Override
        public void run() {
            try {
                int waited = 0;
                while(_active && (waited < _splashTime)) {
                    sleep(100);
                    if(_active) {
                        waited += 100;
                    }                      
                }

            } 
            catch(InterruptedException e) {
            } 
            finally {
                finish();
               hello="HI2";
                stop();
            }
        }
    };
    splashTread.start();

ここで、文字列helloは2秒でHIからHI2に変わります

これがお役に立てば幸いです

于 2013-02-13T09:46:06.853 に答える