2012-05-02 413 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具有相同的意圖覆蓋以前。 –