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.

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

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?

  • ¿Cómo puede detectar si su actividad está siendo onPaused debido a un PendingIntent que creó?
  • Pasando valores en intentos pendientes de Android
  • Iniciar la aplicación sólo si no está en ejecución
  • La notificación abre actividad, se pulsa el botón de retroceso, se abre la actividad principal?
  • Lectura de un mensaje NDEF desde una etiqueta NFC desde una aplicación de Android
  • Ocultar la acción del teléfono abierta en el uso
  • El clic de Android en la notificación no abre la Actividad adjunta
  • Transmisión de datos del widget a la aplicación
  • ¿Cómo enviar una emisión ordenada en un PendingIntent?
  • Crea un nuevo intento pendiente cada vez en Android
  • ¿Se ha admitido requestCode en PendingIntent?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.