CountDownTimerとAlarmManagerの間に大きな違いはありますか? 構文や使用方法を意味するものではありませんが、別のタスクではなく、そのうちの 1 つを使用する必要があると確実に言えるようなタスクがあるかどうか疑問に思っていますか?
簡単な例として、1 分に 1 回何らかのアクションを起動する必要があります。何を使えばいいですか?CountDownTimer または AlarmManager? それはどのように依存しますか?
3 に答える
AlarmManager
通常、アプリケーションを閉じる場合、または繰り返しタスクを実行する必要がある場合に使用されます。Timer
また、またはよりもわずかに精度が低くなりHandler
ます。
CountDownTimer
期間(onFinish
)で特定のタスクを実行し、実行されるまで定期的に更新される()ために使用されonTick
ます。
AlarmManager
あなたの特定のケースでは、それが無期限に繰り返される可能性があるので、あなたはを使うべきだと私は信じています。たとえば、何かを1秒ごとに10秒間実行する場合は、を使用しますCountDownTimer
。
CountDownTimer
CountDownTimer はアクティビティのコンテキストで実行されます。アプリがフォアグラウンドにない場合、いつでも強制終了できることを意味します。
AlarmManager
まったく異なるアプローチでは、Sticky Intents を使用します。Receiver
そして、しばらくしてからあなたに伝えます。アクティビティのライフサイクルには依存しません。
したがって、アプリがフォアグラウンドでなくても、毎分何らかの操作を実行したい場合は、 を使用する必要AlarmManager
がCountDownTimer
あります。
ここで説明されているように:
注: Alarm Manager は、アプリケーションが現在実行されていなくても、特定の時間にアプリケーション コードを実行する場合を対象としています。通常のタイミング操作 (ティック、タイムアウトなど) では、Handler を使用する方が簡単で効率的です。
アプリが閉じていてもアクションを実行したくないので、あなたの場合は CountDownTimer を使用することをお勧めします。