2014-05-09 59 views
0

我正在開發可能會創建多個通知的消息應用程序。我希望它能夠在事情發生時更新和刪除這些通知。管理通知

例如,如果我收到來自A的消息,通知應該會顯示「您有1條來自A的消息」。如果有其他消息到達,應該說「你有2條來自A的消息」。

然後,如果我收到來自B的消息,它應該是一個綜合通知,它只是說「您有消息」,而不是來自每個發件人的單獨通知。

此外,當我點擊通知時,它應該取消,如果我點擊用戶的聊天窗口,來自用戶A的任何通知也應該取消。

現在我已經實現下面的代碼生成通知:

PendingIntent pendingIntent = PendingIntent.getActivity(context, -1, launchIntent, PendingIntent.FLAG_UPDATE_CURRENT); 

NotificationCompat.Builder noti = new NotificationCompat.Builder(
    context).setContentTitle(context.getResources().getString(R.string.app_name)) 
    .setContentText(notificationMessage) 
    .setSmallIcon(R.drawable.ic_stat_notify) 
    setContentIntent(pendingIntent) 
    setAutoCancel(true) 
    setWhen(System.currentTimeMillis()) 
    setDefaults(Notification.DEFAULT_ALL); 
notificationManager.notify(notifyId, noti.build()); 

這將創建通知就好了,而當用戶點擊它取消它。但是,我不確定如何更新通知,合併它們並取消相應的通知。有人知道嗎?

謝謝。

回答

0

您需要使用相同的Notification ID的所有

public void notify(int id, Notification notification) 

ID時間 - 發佈一個通知,在狀態欄中顯示。如果一個notification with the same id has already been posted by your application並且尚未被取消,那將是replaced by the updated information

+0

好的,我明白這個行爲。但是,這是不是意味着我不能有選擇地取消通知?例如,如果我收到來自用戶A的消息,並且在我確認通知之前,我從用戶B獲得一個用戶。關於用戶B的通知將取代用戶A的通知,並且我將無法取消用戶A的通知通知,留下用戶B的通知? – user1118764

+0

另外,我保留了未確認通知的次數,以便在需要時可以合併通知,並且我希望在用戶確認通知時清除此計數。我無法弄清楚在哪裏做到這一點。點擊通知只會啓動意圖,並且我無法清除每個意向活動的每個onResume()的計數。 – user1118764

0

只需發佈一個與舊舊通知相同的新通知,即可用新通知替換舊通知。