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

时间:2012-05-02 22:06:25

标签: android flags android-pendingintent android-alarms

我的目标是为来自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}}

感谢您的帮助!

1 个答案:

答案 0 :(得分:5)

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