5

AlarmManager.setInexactRepeatingたとえば、不正確な繰り返しアラームを1 時間ごとに起動するようにスケジュールした場合、電話が 4 時間スタンバイ状態にあり、その後ウェイクアップするとどうなりますか? システムは、同じアラームに対して連続して 4 つのアラームを送信しますか、PendingIntentそれとも 1 つのアラームのみを送信しますか?

編集:ドキュメントをもっと注意して読むと、set(int, long, android.app.PendingIntent)メソッドのドキュメントには次のように書かれています:アラーム インテントは、このインテント ブロードキャストに蓄積された過去のアラーム イベントの数を示すint 型のデータ エクストラで配信されます。Intent.EXTRA_ALARM_COUNT電話機がスリープ状態だったために配信されなかった繰り返しアラームは、配信されたときに 1 より大きい数になる場合があります。 そのため、電話機がスタンバイ状態から復帰すると、見逃したアラームの数を含むインテント エクストラを使用して、アラームが 1 つだけ配信されます。

4

2 に答える 2

1

ドキュメントをさらに注意して読むと、set(int, long, android.app.PendingIntent)メソッドのドキュメントには次のように書かれています。アラーム インテントは、このインテント ブロードキャストに蓄積された過去のアラーム イベントの数を示すint 型のエクストラ データとともに配信されます。Intent.EXTRA_ALARM_COUNT電話機がスリープ状態だったために配信されなかった繰り返しアラームは、配信されたときに 1 より大きい数になる場合があります。 そのため、電話機がスタンバイ状態から復帰すると、見逃したアラームの数を含むインテント エクストラを使用して、アラームが 1 つだけ配信されます。

于 2012-08-27T14:03:39.973 に答える
0

このように保留中の意図を使用するかどうかによって異なります

  PendingIntent pending = PendingIntent.getBroadcast(context, 0, i,
            PendingIntent.FLAG_CANCEL_CURRENT);

前の保留中のインテントをキャンセルするため、4 回トリガーされません。

于 2012-08-27T11:11:09.927 に答える