AlarmManager.setInexactRepeating
という不正確な繰り返しアラームを1時間ごとに発生させるようにスケジュールすると、たとえば、電話機が4時間スタンバイ状態になった後、スリープ状態になるとどうなりますか?システムは同じPendingIntent
の行に4つのアラームを出力しますか、または1つのアラームのみを送信しますか?電話が起きたときに届かなかったAlarmManagerがアラームを繰り返すとどうなりますか?
EDIT:もっと注意してドキュメントを読んで、set(int, long, android.app.PendingIntent)
方法のドキュメントは言う:アラームインテントは、多くの過去のアラームイベントは、この目的の放送に蓄積されているかを示すことIntent.EXTRA_ALARM_COUNT
と呼ばれるint型のデータ余分に配信されます。電話機がスリープしているために配信されなかった定期的なアラームは、配信されたときに1を超えるカウントを持つことがあります。 したがって、電話機がスタンバイ状態から復帰すると、1つのアラームのみが配信され、余分なアラームには不在アラームの数が含まれます。
「PendingIntent.FLAG_CANCEL_CURRENT」は、保留中のインテントオブジェクトの作成/取得中にのみ意味を持ち、私がメインポストで言ったことを避けるという意味ではないと思います。 –
あなたが今作成している保留中の意図(つまり、同じ意図アクションやデータなど)と一致する保留中の意図をすでに作成している場合、システムは古いものを取り消し、新しい保留インテントオブジェクトを作成します。 –
私はそれが前に保留中のインテントをキャンセルするので、それが4回トリガされないことを望みます。 –