5

私は、居眠りモードでも完了するはずの一定の間隔(2分後としましょう)で繰り返しタスクを実行する必要があるアプリケーションに取り組んでいます。私の観察は以下に記載されています-

  1. アラーム (RTC フラグを使用) を使用して繰り返しタスクを実行することは正確ではありません。Android システムがアラームをバッチ処理します。RTC_WAKEUP を使用すると、RTC よりも優れていますが、Android Vitals に WAKEUP カウントが表示され、良くありません。
  2. ジョブスケジューラは便利ですが、2 分のような短い間隔では機能しません。Firebase Jobdispatcher を試してみましたが、これもあまり正確ではありません。2 分のトリガー時間でジョブを開始しましたが、10 ~ 20 分の範囲で変化していました。
  3. フォアグラウンド サービスでタスクを繰り返すためにハンドラーとタイマーを使用しました。このシナリオでは、フォアグラウンド サービスは引き続き Doze モードで実行されますが、ハンドラーとタイマーはタスクの繰り返しを停止します。Handlers.postDelayed() について読んだところ、これは居眠りモードの影響も受けていることがわかりました。

この繰り返しタスクの WAKELOCK を取得したくありません。

居眠りモードで短い間隔で繰り返しタスクを実行できる、より良い/クリーンな方法を提案してもらえますか?

参考のため -

Android:繰り返しのバックグラウンド タスク Android Oreo を準備するための最良の方法は何ですか?

Doze モードは、部分的/完全なウェイクロックの有無にかかわらず、バックグラウンド/フォアグラウンド サービスにどのように影響しますか?

4

1 に答える 1