2014-09-06 29 views
1

我是一個在android的noob,我試圖顯示我收到推送通知的通知。每次收到推送通知時,即使存在現有的通知欄,通知欄中也會創建一個新通知。我希望他們分組在一起。通知沒有分組

這是我目前在做什麼

private void generateNotification(Context context, String ticker, String title, String msg, int icon, Intent intent) 
    { 
    int notificationId = 1; 
    long when = System.currentTimeMillis(); 
    int pendingNotificationsCount = AppName.getPendingNotificationsCount() + 1; 
    AppName.setPendingNotificationsCount(pendingNotificationsCount); 
    mNotifyBuilder = new NotificationCompat.Builder(this) 
    .setWhen(when) 
    .setContentTitle(title) 
    .setContentText(msg) 
    .setAutoCancel(true) 
    .setContentIntent(PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)) 
    .setNumber(pendingNotificationsCount); 
//This prints the count correctly.... 
    Log.d("Snehan", "Message built with Count "+pendingNotificationsCount); 
    Notification notif = mNotifyBuilder.build(); 
    notif.defaults = Notification.DEFAULT_ALL; 
    NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
    notificationManager.notify(notificationId, notif); 
    } 

上午我在這裏做得不對或失去了一些東西?

回答

0

似乎Android自從我上次使用它之後更新了該庫。但邏輯仍然是一樣的。你需要保存任何通知ID,或者至少給它一個名字,你可以跟蹤並檢查它是否存在。更多信息可以在Android docs找到。下面是我的意思的片段。

要設置通知以便更新它,可以通過調用NotificationManager.notify(ID,notification)將其與通知ID一起發出。要在發佈通知後更新此通知,請更新或創建一個NotificationCompat.Builder對象,從中建立一個通知對象,然後發出具有您之前使用的相同ID的通知。如果先前的通知仍然可見,則系統從通知對象的內容更新它。如果先前的通知已被解除,則會創建新的通知。

該文檔有你需要的一切,所以不需要我爲你寫代碼:)希望幫助。

編輯

好了,我建議你ADDA虛擬圖標只是爲了看看是什麼一樣。我還建議不要將所有這些東西鏈接起來,而只是鏈接文本內容。這樣你可以更容易地調試。嘗試更緊密地遵循該文檔。我不會真的看到你的代碼有什麼問題,但顯然有些事情正在引發這個問題。

編輯2

如此看來圖標是問題。我之前有過這個問題,這就是爲什麼我提到要明確補充說明的原因。希望當有人遇到問題的通知,請確保你有一個圖標!

+0

是的,這就是我目前正在做的代碼,我粘貼在我的問題,使用相同的通知ID,但我仍然得到一個新的:( – 2014-09-06 19:07:41

+0

從頭開始,我正在經歷 – Andy 2014-09-06 19:28:18

+0

幫我一個忙,嘗試給你的通知添加一個虛擬圖標,我過去遇到過問題,試試添加一個。 – Andy 2014-09-06 19:31:24