@pahaによる答えは重要なポイントを見逃しています:IntentServiceは十分ではありません。 onReceive()の間 が終了し、IntentServiceが開始されると、電話が再びスリープ状態になる可能性があります。このギャップを埋めるには(静的)ロックが必要です。これは、MarkMurpphyのWakefulIntentServiceに実装されています。
したがって、AlarmManagerとレシーバーは保持しますが、 WakefulIntentServiceを起動します。 onReceive()から 。
参照:
- Androidのディープスリープとウェイクロック
- PowerManagerウェイクロックがデバイスをサービスからウェイクアップしない