2013-04-08 55 views
0

我從GCM收到推送通知並希望它們顯示在通知欄中。所以我在GCMIntentService類中生成通知。Android:正確處理多個通知

如果通知區域中已經有通知,則必須在此通知中附加新消息(使用BigTextStyle)。但是,如何知道通知區域中是否存在來自我的應用程序的通知?

回答

0

您無法獲取現有通知,但可以通過設置通知ID來更新現有通知。

NotificationManager.notify(NotificationId, NotificationObject); 
+0

是的,我知道但我必須知道最後顯示的通知是否仍在顯示。我想合併我的通知。 – Mossos 2013-04-08 12:48:54

+0

爲了更加清楚,我舉了一個例子: 1.新的GCM消息「消息1」到達。生成註釋 2.新的GCM消息「消息2」到達。如果仍顯示第一個通知,則生成一個包含「消息1」和「消息2」的新通知(具有相同的ID)。否則只顯示「消息2」。 – Mossos 2013-04-08 12:52:41

+0

我出去了2天,但據我所知似乎不可能。如果我發現了什麼,我會讓你知道 – Amit 2013-04-09 16:20:31

0

不,你不知道是否已經發布了通知;這是你應該跟蹤你的應用程序。

但是,幸運的是,用於更新現有通知的API與用於創建新通知的API相同:notify()。也就是說,一旦您獲得新信息,將其添加到某個內部緩衝區(可能只是一個StringBuilder),表示接收到的推送通知的完整集合,然後使用Notification.Builder生成一個新通知,並使用上次使用的相同ID和標記呼叫notify() 。使用該ID和標籤的任何現有通知都將被替換爲新內容。

+0

謝謝!但是這並不能解決問題。 (請參閱我對第一個答覆的評論中的示例)。顯然其他應用程序也不處理這個。 – Mossos 2013-04-13 19:27:30

+0

您可以使用'deleteIntent'來找出您之前的通知何時被清除,因此您應該能夠確定它是否仍在顯示。這有幫助嗎? – dsandler 2013-04-18 15:18:44