38

Tengo una actividad que se abre desde la barra de notificaciones, pero cuando hago NotificationManager.notify(...), le doy a la intención un paquete diferente, para que cada notificación abra la misma actividad, pero obteniendo de la DB otra información entre sí.Notificaciones múltiples a la misma actividad

Pero cuando intento ingresar a cualquiera de las notificaciones (por ejemplo, hay 3 notificaciones), todas me envían a la actividad con el mismo paquete que la última. Después de probar con algunos Indicadores, realmente no sé dónde está el problema (algunos indicadores hacen que la notificación ingrese a la actividad con el primer paquete).

Estoy siguiendo la forma en que lo usaron en the tutorial.

+0

¿Puede compartir una parte del código que va a crear las intenciones pendientes? Tuve un problema similar y fue porque eran los intentos pendientes que el framework estaba reutilizando. – Maximus

Respuesta

104

Si PendingIntent tiene la misma operación, acción, datos, categorías, componentes y banderas será reemplazado.

Dependiendo de la situación, generalmente resuelvo esto proporcionando un código de solicitud único, ya sea como valores estáticos (0,1,2) o la identificación de fila de los datos que estoy recibiendo de la base de datos.

PendingIntent.getActivity(context, MY_UNIQUE_VALUE , notificationIntent, PendingIntent.FLAG_ONE_SHOT); 

Luego uso el mismo valor único para notificar() como

mNotificationManager.notify(MY_UNIQUE_VALUE, notification); 
+0

Esto lo hizo por mí. Muchas gracias. Los documentos para desarrolladores solo mencionan una identificación única para el método de notificación, no para el método getActivity. – hcpl

+7

Tuve el mismo problema y esta solución funciona perfectamente. Creo que el problema comienza con la [documentación] (http://developer.android.com/reference/android/app/PendingIntent.html#getActivity%28android.content.Context,%20int,%20android.content.Intent,% 20int% 29) - que afirma que el código de solicitud no se está utilizando actualmente, pero parece que sí. Gracias por la respuesta. – jstr069

+5

Esto funcionó para mí también. Por favor marqúelo como solución. – dangel

Cuestiones relacionadas