open notification from example ejemplo custom anatomy activity android notifications android-intent

notification - problema de notificación de intención pendiente de Android



notificationmanager android ejemplo (4)

El problema es que cuando creo más de una alarma, la actividad lanzada desde la notificación obtiene los mismos extras que la primera.

Correcto.

¿Cómo puedo hacer para lanzar los intentos correctos?

Eso depende de si tiene dos alarmas que se registrarán a la vez o no.

De lo contrario, puede usar FLAG_ONE_SHOT o uno de los otros indicadores PendingIntent para que su segundo PendingIntent use los nuevos extras.

Sin embargo, si tiene dos alarmas registradas a la vez, con diferentes extras de Intent , necesitará hacer que las dos Intents sean más diferentes materialmente, de modo que filterEquals() devuelva false al comparar las dos. Por ejemplo, puede llamar a setData() o setAction() y proporcionar diferentes valores para cada Intent .

Tengo un problema de alarma en mi aplicación y se lanza una notificación que luego cuando se presiona se inicia una actividad. El problema es que cuando creo más de una alarma, la actividad lanzada desde la notificación obtiene los mismos extras que la primera. Creo que el problema es con la intención que puse en el intento pendiente o en el intento pendiente en sí. Creo que podría necesitar poner una bandera en uno de estos, pero no sé cuál.

Intent showIntent =new Intent(context, notificationreceiver.class); showIntent.putExtra("details", alarmname); PendingIntent contentIntent = PendingIntent.getActivity(context, 0, showIntent, 0); notification.setLatestEventInfo(context, "The event is imminent", alarmname, contentIntent);

Y el receptor de la notificación

Bundle b = getIntent().getExtras(); String eventname = b.getString("details"); details.setText(eventname);

Los "detalles" adicionales son los mismos para cada uno la próxima vez que ocurre una notificación en lugar de tener un valor diferente. Hasta que establezca los intentos, estoy seguro de que el valor correcto va a los "detalles", por lo que es un problema de obtener el primer intento cada vez que presiono una notificación. ¿Cómo puedo hacer para lanzar los intentos correctos? Espero haber sido tan claro como pude ¡Gracias!


La forma en que resolví ese problema fue asignando un único requestCode cuando recibes el PendingIntent:

PendingIntent.getActivity(context, requestCode, showIntent, 0);

Al hacerlo, se está registrando en el sistema instancias de intento diferentes / únicas. Consejo: Una buena forma de hacer único el requestCode sería pasándole la hora actual del sistema.

int requestID = (int) System.currentTimeMillis();


Tuve este problema en mi aplicación y acabo de generar un número aleatorio para superar el intento de notificaciones generales:

int random= new Random().nextInt(); PendingIntent resultPendingIntent = stackBuilder.getPendingIntent( random, PendingIntent.FLAG_UPDATE_CURRENT );


otra solución:

utilice PendingIntent.FLAG_UPDATE_CURRENT de la siguiente manera:

PendingIntent contentIntent = PendingIntent.getActivity(this, 0,i, PendingIntent.FLAG_UPDATE_CURRENT);

esto funcionó para mí