设置多个警报时仅触发一个警报

Mar*_*Bro 2 flags android android-alarms android-pendingintent

我的目标是为每个事件发出警报,eventsDb.getFavouriteEvents()但每次事件只发射一次.

在我看来,它可能是由设置引起的PendingIntent.FLAG_UPDATE_CURRENT,但是我需要这个标志来发布具有意图的额外内容.有没有办法不设置这个标志,仍然有意图发布Extras?

我存储PendinIntents在Collection(pendingIntents)中因为我在onDestroy()这个Service类中取消它们.

这是来自的代码onCreate():

for(Event event : eventsDB.getFavouriteEvents()) {
  Intent intent = new Intent(AlarmReciever.ONCOMING_EVENT);
  intent.putExtra(Event.TITLE, event.getTitle());

  PendingIntent pendingIntent = PendingIntent.getBroadcast(EventAlarmService.this, 0, intent, 
    Intent.FLAG_GRANT_READ_URI_PERMISSION | PendingIntent.FLAG_UPDATE_CURRENT);
  alarmManager.set(AlarmManager.RTC_WAKEUP, event.getTime(), pendingIntent);

  pendingIntents.add(pendingIntent);
}
Run Code Online (Sandbox Code Playgroud)

感谢帮助!

dag*_*pin 5

如果PendingIntent共享相同的代码,它们将在发送时被覆盖.更改发送时每个意图的代码应该可以解决此问题.

  • 所以这就是`requestCodes`的用途!谢谢 : ) (2认同)