38

我有一個正在從通知欄打開的活動,但是當我做NotificationManager.notify(...)時,我給意向分配了一個不同的包,以便每個通知打開相同的活動,但獲得從DB其他信息彼此。對同一活動的多個通知

但是,當我嘗試輸入任何通知(例如有3個通知)時,它們都會將我發送給與最後一個相同的捆綁包。嘗試使用一些標誌後,我真的不知道問題出在哪裏(有些標誌會使通知進入第一個包的活動)。

我遵循他們在the tutorial中使用它的方式。

+0

相同的獨特價值,你可以分享一些在其中創建掛起的意圖的代碼?我有一個類似的問題,這是因爲他們正在等待框架重用的意圖。 – Maximus 2011-05-20 02:54:11

回答

104

如果PendingIntent具有相同的操作,操作,數據,類別,組件和標誌,它們將被替換。

根據情況我通常通過提供一個唯一的請求代碼來解決這個問題,無論是靜態值(0,1,2)還是我從數據庫接收的數據的行ID。

PendingIntent.getActivity(context, MY_UNIQUE_VALUE , notificationIntent, PendingIntent.FLAG_ONE_SHOT); 

然後,我使用的通知()作爲

mNotificationManager.notify(MY_UNIQUE_VALUE, notification); 
+0

這是爲我做的。非常感謝。開發人員文檔實際上只提供通知方法的唯一標識,而不是getActivity方法。 – hcpl 2011-08-25 15:48:16

+7

我有同樣的問題,這種解決方案完美的作品。我認爲問題始於[文檔](http://developer.android.com/reference/android/app/PendingIntent.html#getActivity%28android.content.Context,%20int,%20android.content.Intent,% 20int%29) - 聲稱請求代碼目前沒有被使用,但它似乎是。感謝你的回答。 – jstr069 2011-07-07 17:28:46

+5

這也適用於我。請標記爲解決方案。 – dangel 2013-06-03 10:44:08