私は Android サービスに、60 分 (1 時間) ごとに何らかの操作を繰り返すハンドラーを使用しています。PartialWakeLock を使用して、電話がスリープしないようにします。しかし、これは多くのバッテリー使用量を引き起こします。
だから、誰かがここに書いたAlarmManager (私は初心者です) について勉強することにしました..
しかし、Web を読んでいると、AlarmManager を使用している人は、まだ WakeLock が必要であることがわかりました。本当ですか?
バッテリーを切らずに 60 分 (1 時間) ごとにサイクルを実行する最良の方法は何ですか?
ありがとう
PS
アラーム マネージャは、アラーム レシーバの onReceive() メソッドが実行されている限り、CPU ウェイク ロックを保持します。これにより、ブロードキャストの処理が完了するまで電話がスリープ状態にならないことが保証されます。onReceive() が戻ると、Alarm Manager はこの wake lock を解放します。これは、onReceive() メソッドが完了するとすぐに電話がスリープする場合があることを意味します。アラーム受信機が Context.startService() を呼び出した場合、要求されたサービスが開始される前に電話機がスリープ状態になる可能性があります。これを防ぐには、BroadcastReceiver とService に別の wake lock ポリシーを実装して、サービスが利用可能になるまで電話が動作し続けるようにする必要があります。
しかし、ハンドラーを使用して2つのウェイクロックと1つのウェイクロックが必要なようです....それは本当ですか?