我的目标是为来自eventsDb.getFavouriteEvents()
的每个事件发出警报,但每次只有一个事件被触发。
在我看来,这可能是由PendingIntent.FLAG_UPDATE_CURRENT
设置引起的,但是我需要这个标志来发布带有意图的额外内容。有没有办法不设置这个标志,仍然用意图发布Extras?
我将PendinIntents
存储在集合(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);
}
的代码:
{{1}}
感谢您的帮助!
答案 0 :(得分:5)
如果PendingIntent共享相同的代码,它们将在发送时被覆盖。更改发送时每个意图的代码应该可以解决这个问题。