2

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

在我看来,这可能是由设置引起的PendingIntent.FLAG_UPDATE_CURRENT,但是我需要这个标志来有意地发布 Extras。有没有办法不设置这个标志并仍然有意图地发布 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);
}

感谢帮助!

4

1 回答 1

5

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

于 2012-05-02T22:11:29.367 回答