私は少し混乱していて、AndroidTimer
で使用しています。AlarmManager
それらの主な違いは何ですか?
どちらも A 秒ごとに実行するタスクをスケジュールしています。そして、それらが使用されることが好まれる主なシナリオは何ですか?
たとえば、X の場合は を使用しますTimer
が、Y の場合は を使用しますAlarmManager
。
ATimer
は、いつコードを開始するかを追跡するスレッドを開始します。デバイスがスリープ状態になると、タイマー スレッドもスリープ状態になり、コードは時間どおりに実行されなくなります。AlarmManager
一方、 のアラームはカーネルレベルです。それらを登録する方法に応じて、デバイスのウェイクアップを要求するか、次回デバイスをウェイクアップするときに実行することができます。アラームは一般的に好まれ、使用するリソースが少なくなります。
タイマーは、実際には何もしていないと思っていても、非常に頻繁にコードを実行するサービスを開始します。
一方、Alarmmanager は常にバックグラウンドで実行されるサービスを開始します。これは、アプリが開いていないときにコードを実行するようにスケジュールするために使用するものです。