2012-05-02 224 views
2

我的目标是为每个来自eventsDb.getFavouriteEvents()的事件发出闹钟,但每次只有一个闹钟被触发。当设置多个闹钟时,只发出一个闹钟

在我看来,它可能是由设置PendingIntent.FLAG_UPDATE_CURRENT造成的,但是我需要这个标志来发布额外的意图。有没有办法不设置这个标志,并且仍然在附加意图上发布附加信息?

我将PendinIntents存储在收藏夹中(pendingIntents),因为我将在类的onDestroy()中取消它们。

这是代码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); 
} 

感谢您的帮助!

回答

5

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

+2

所以这就是'requestCodes'的用途!感谢:) –

+0

或者您可以对意图使用不同的操作来区分它们。 PendingIntent具有相同的意图覆盖以前。 –