2011-03-08 62 views
7

我開發了一個應用程序,用戶可以在其中創建事件併爲該事件設置通知。所以我想添加多個通知。我正在使用下面的代碼。Android多重通知

final Notification notifyDetails = new Notification(R.drawable.icon, "Myapp",calendar.getTimeInMillis()); 
Context context = getApplicationContext(); 
Intent notifyIntent = new Intent(context, ViewDoughnut.class); 
PendingIntent pendingIntent = PendingIntent.getActivity(ViewCal.this, 0, notifyIntent, android.content.Intent.FLAG_ACTIVITY_NEW_TASK); 
notifyDetails.setLatestEventInfo(context, contentTitle, contentText, pendingIntent); 
notifyDetails.flags = Notification.FLAG_ONGOING_EVENT; 
mNotificationManager.notify(SIMPLE_NOTFICATION_ID, notifyDetails); 

當我添加一個事件並使用上面的代碼創建通知時,它工作正常。但是,如果我添加另一個事件,則不會創建新通知,而只會更新舊通知。我想添加一個通知。怎麼做?此外,如果用戶刪除與其相對應的事件,我想刪除任何特定的通知。怎麼可能?

回答

12

我假設SIMPLE_NOTIFICATION_ID是一個常數?要有單獨的通知,您需要爲每個通知使用不同的ID。

+0

但當用戶刪除相應的事件時如何取消任何通知?如果我用mNotificationManager.cancel(editEventid)嘗試過,它根本不起作用。 – 2011-03-08 12:20:13

+0

@ user525004如果您將相同的ID傳遞給您在創建通知時使用的cancel方法,那麼它應該可以工作(適用於我的應用程序)。如果您的活動已經擁有自己的唯一ID,請將這些用於通知ID。 – 2011-03-08 16:21:47

+0

我該如何讓ID有所不同?每次通過自己創建的通知時+1,你能告訴我一些代碼嗎? – 2012-10-15 17:07:12

0

下面是通唯一的通知ID代碼:

//"CommonUtilities.getValudeFromOreference" is the method created by me to get value from savedPreferences. 
String notificationId = CommonUtilities.getValueFromPreference(context, Global.NOTIFICATION_ID, "0"); 
int notificationIdinInt = Integer.parseInt(notificationId); 

notificationManager.notify(notificationIdinInt, notification); 

// will increment notification id for uniqueness 
notificationIdinInt = notificationIdinInt + 1; 
CommonUtilities.saveValueToPreference(context, Global.NOTIFICATION_ID, notificationIdinInt + ""); 
//Above "CommonUtilities.saveValueToPreference" is the method created by me to save new value in savePreferences. 

讓我知道如果您需要更詳細的信息或任何查詢。 :)