2

サービスでアラーム マネージャーを使用して、特定のタスクを実行するために 15 秒ごとに非覚醒アラームを設定しています。タスクはタイムクリティカルではないため、電話を起こしたくないので、 ELAPSED_REALTIME フラグを使用してアラームを設定しています。コードは次のとおりです。

alarm.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(), 15 * 1000, intentRecurringChecks);

ログで気付いたのは、タスクが 15 秒ごとに実行されていることです。これは、画面が 30 分間オフになっていても、電話が起動しているということですか? 私のアプリケーションが電話を起動していないことを確認する方法はありますか?

このトピックについて検索しましたが、適切な答えが見つかりません。

ご協力いただきありがとうございます。

4

1 に答える 1

0

まず、このようなタイムアウトには AlarmManager を使用しないでください。これはドキュメントで明示的に言及されています(太字部分を読んでください)。Handlerあなたの場合、ベースのタイマーを使用することをお勧めします。以下に例を示します:遅延時間のあるタスクを繰り返しますか? .

次に、デバイスが USB 経由で接続されている場合、ディープ スリープ モードに移行しません。1 ~ 2 分待ってから、デバイスを切断する必要があります。再度接続して、ログを分析します。

于 2012-01-11T16:59:08.533 に答える