2011-03-08 796 views
7

Tengo una aplicación en la que el usuario puede crear eventos y establecer notificaciones para ese mismo evento. Entonces quiero agregar notificaciones múltiples. Estoy usando el siguiente código.Android Multiple Notification

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); 

Cuando agrego un evento y creo una notificación utilizando el código anterior, funciona bien. Pero si agrego otro evento, no se crea una nueva notificación, el anterior solo se actualiza. Quiero agregar una notificación más. ¿Cómo hacerlo? Además, quiero eliminar cualquier notificación específica si el usuario elimina el evento correspondiente. ¿Como es posible?

Respuesta

12

Supongo que SIMPLE_NOTIFICATION_ID es una constante? Para tener notificaciones por separado, necesita usar una ID diferente para cada una.

+0

pero cómo cancelar una notificación cuando el usuario está eliminando el evento correspondiente? Si lo he intentado con mNotificationManager.cancel (editEventid), no funciona en absoluto. –

+0

@ user525004 Si pasa la misma ID al método de cancelación que utilizó cuando creó la notificación, entonces debería funcionar (funciona para mí en mi aplicación). Si sus eventos ya tienen sus propios ID únicos, simplemente utilícelos para los ID de notificación. –

+0

¿cómo hago que la identificación sea diferente? a +1 cada vez que se crea una notificación por sí mismo, ¿puede mostrarme algún código? –

0

A continuación se muestra el código de pase único Identificación notificación:

//"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. 

Avísame si necesita información más detallada o cualquier consulta. :)