Adición de indicadores a PendingIntent
cuando pasamos 0 como bandera a PendingIntent como abajo:
PendingIntent pi=PendingIntent.getActivity(this, 1, i, 0);
sigue las reglas de las banderas significa que 0 corresponde a cualquier bandera por defecto.
- Android - ¿Por qué utilizar intenciones pendientes para geofences
- Objeto AlarmManager después de apagar y en el teléfono
- AppWidget PendingIntent no funciona después de reiniciar el Lanzador
- Cómo guardar persistentemente PendingIntent proporcionado por otra aplicación
- ¿Por qué noftificaciones aparecen en la barra de notificación de Android por un tiempo, entonces desaparece
Si creamos otro PendingIntent como
PendingIntent pii=PendingIntent.getActivity(this, 1, i, 0);
será lo mismo que antes y si realizo algún cambio en los datos de Intent, ahora corresponderá a nuevos datos en Intent o aún tendrá datos antiguos.
Otro problema que estoy enfrentando en esto es que estoy tratando de comprobar la bandera
PendingIntent.FLAG_NO_CREATE
He escrito el siguiente código:
Intent i=new Intent(this,NotifResult.class); i.putExtra("number",50); PendingIntent pi=PendingIntent.getActivity(this, 1, i, 0); NotificationCompat.Builder nb=new NotificationCompat.Builder(this); nb.setSmallIcon(R.drawable.ic_launcher); nb.setTicker("ticker is here"); nb.setWhen(System.currentTimeMillis()) .setContentTitle("just the title") .setContentText("and the description") .setAutoCancel(true) .setDefaults(Notification.DEFAULT_ALL) .setContentIntent(pi); Notification notif=nb.build(); NotificationManager nm=(NotificationManager) getSystemService(NOTIFICATION_SERVICE); nm.notify(11, notif); i.putExtra("number",80); PendingIntent pisecond=PendingIntent.getActivity(this, 1, i, PendingIntent.FLAG_NO_CREATE); if(pi.equals(pisecond)) Log.v("check","they are equal"); else Log.v("check", "they are not equal"); notif.contentIntent=pisecond; nm.notify(11, notif);
Según docs, PendingIntent.FLAG_NO_CREATE no crea ningún objeto nuevo si existe un objeto existign. estoy imprimiendo el valor del número en la actividad de NotifResult en el cual el valor del número viene a ser 80 en vez de 50 esperado como debe utilizar la intención existente con el viejo valor (según mi entendimiento) .kindly actualiza porqué la salida está viniendo 80. el registro está mostrando objetos sean iguales como se esperaba.
Gracias
- Obtener la lista de PendingIntents activa en AlarmManager
- ¿Llamando startActivity () desde fuera de una Actividad?
- RecognizerIntent: cómo agregar un paquete a una intención pendiente
- Enviar difusión al hacer clic en la notificación
- Android PendingIntent te lleva a una actividad ya existente?
- La Notificación de Android reinicia la aplicación pero desea continuar
- Servicios de Google Play: ¿cómo comprobar si hay una devolución de llamada pendiente pendiente "activa" registrada en las actualizaciones de ubicación / reconocimiento de actividad?
- Utilizar two pendingIntent en una vista en Appwidget
Cuando usted llama:
PendingIntent pi=PendingIntent.getActivity(this, 1, i, 0);
pasar 0
como el parámetro flags significa que no está configurando ningún indicador.
Si llama a:
PendingIntent pii=PendingIntent.getActivity(this, 1, i, 0);
de nuevo, y la Intent
que pasa coincide con la Intent
de la primera llamada, entonces obtendrá el mismo PendingIntent
que desde la primera llamada. "coincidencias" significa que la ACCIÓN, DATOS, CATEGORÍA y COMPONENTE son todos iguales. Los extras no se consideran cuando se emparejan.
Si usted proporciona diferentes extras en el Intent
para la segunda llamada, esos extras NO estarán presentes en el PendingIntent
cuando se envía. Se utilizarán los extras en el Intent
de la primera llamada.
No puedo explicar el comportamiento que estás viendo con respecto a "50" y "80". Según los documentos y según mi entendimiento y según mis propias observaciones, deberías ver "50" y no "80". Debe haber algo más extraño sucediendo. ¿Estás probando en un dispositivo real? un emulador ¿Qué versión de Android?
- Cargar archivo en Android
- Cómo resolver java.net.BindException: error de enlace: EADDRINUSE (Dirección ya en uso)