この質問を書いている間に解決しましたが、誰かに役立つ場合に備えて投稿してください:
の異なる値で、このような複数のアラームを設定していますid
:
AlarmManager alarms = (AlarmManager)context.getSystemService(
Context.ALARM_SERVICE);
Intent i = new Intent(MyReceiver.ACTION_ALARM); // "com.example.ALARM"
i.putExtra(MyReceiver.EXTRA_ID, id); // "com.example.ID", 2
PendingIntent p = PendingIntent.getBroadcast(context, 0, i, 0);
alarms.setRepeating(AlarmManager.RTC_WAKEUP, nextMillis, 300000, p); // 5 mins
...そして、次のように受け取ります。
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ACTION_ALARM)) {
// It's time to sound/show an alarm
final long id = intent.getLongExtra(EXTRA_ID, -1);
アラームは適切なタイミングで受信機に配信されますが、多くEXTRA_ID
の場合、間違った値に設定されています。これは、ある時点で使用した値であり、特定の時間に配信したかった値ではありません。