1

私のコードロジックは

  1. 繰り返し起床アラームを設定します。

alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), 60000, pIntent);

  1. レシーバーの onReceive() 中。非常に迅速に何かを行います。最大で 100 ミリ秒しか必要ない場合があります。操作は毎分繰り返され、何らかの理由でバッテリーに負担がかかります (バックグラウンド サービスをできるだけ長く実行したいため)。

現在、電力監視ツールによると、onReceive() でログを記録しただけでも、それでも約1.5秒かかります。

私はいくつかの調査を行いましたが、Android 拡張 Linux カーネルの alarm_suspend での待機に関連している可能性があると推測しています。しかし、私はそれについて確信が持てません。Androidがアラームの実行時間をそれほど長く保つ必要がある理由はないように見えるので、誰かがアラームを設定してオーバーヘッドをできるだけ小さくするのに良い経験を持っているかどうか尋ねていますか?

ありがとう。

4

0 に答える 0