Android – ¿Qué es un PendingIntent?

Soy nuevo en el desarrollo de Android y tuve que usar una alarma de repetición con AlarmManager . Aquí es donde primero tuve la oportunidad de usar un PendingIntent. Sin embargo, después de leer la documentación ( http://developer.android.com/reference/android/app/PendingIntent.html ), estoy realmente confundido en cuanto a lo que realmente es un PendingIntent.

Mis preguntas son:

Q1. ¿De qué manera está pendiente un pendiente? Disculpas por esta pregunta, pero me gustaría tener una comprensión intuitiva de lo que significa un PendingIntent .

Q2. La documentación dice:

Un PendingIntent en sí mismo es simplemente una referencia a un token mantenido por el sistema que describe los datos originales utilizados para recuperarlo. Esto significa que, incluso si se pierde el proceso de su aplicación propietaria, PendingIntent seguirá siendo utilizable de otros procesos que se le han dado. Si la aplicación de creación vuelve a recuperar posteriormente el mismo tipo de PendingIntent (misma operación, misma acción de intención, datos, categorías y componentes y los mismos indicadores), recibirá un PendingIntent que represente el mismo token si sigue siendo válido y puede Por lo tanto llamar a cancel () para eliminarlo.

Cómo,

Referencia a un testigo mantenido por el sistema que describe los datos originales

Se refieren a mi código aquí?

 pendingIntent = PendingIntent.getBroadcast(getApplicationContext(),0,photosIntent,0); alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME,SystemClock.elapsedRealtime(), 10000, pendingIntent); 

Q3. También no entiendo lo que sigue en la documentación:

Debido a este comportamiento, es importante saber cuándo dos Intentes se consideran los mismos para los propósitos de recuperar una PendingIntent. Un error común que la gente comete es crear múltiples objetos PendingIntent con Intents que solo varían en su contenido "extra", esperando obtener un PendingIntent diferente cada vez. Esto no sucede. Las partes de la Intención que se utilizan para hacer coincidir son las mismas definidas por Intent.filterEquals. Si utiliza dos objetos Intent que son equivalentes según Intent.filterEquals, obtendrá el mismo PendingIntent para ambos.

¿Cuáles son los extra contents ? ¿Se refiere esto al request code y los parámetros de flag en el getBroadcast(Context context, int requestCode, Intent intent, int flags) ?

Cualquier ayuda en esto sería más apreciada. Mis búsquedas en línea no me han dado las respuestas que estaba buscando. También, muchas gracias por su tiempo.

P1 – ¿De qué manera es "Pendiente"?

El sistema almacena los valores que almacena en PendingIntent y permite que usted (u otra parte del framework) los busque posteriormente, como si el componente que los buscó hubiera creado una nueva Propósito espontáneamente con esa información.

P2 – ¿Cómo se relaciona la referencia a un token con mi código aquí?

El Marco de Android no almacena realmente el objeto PendingIntent que cree; Se desplaza la "información de identificación" para la intención (en este caso, la acción, los datos, el tipo, la clase y las categorías) y utiliza esa información para buscar el resto de la información. El objeto PendingIntent literal que crea no se guarda, la información que representa.

P3 – ¿Qué son los "contenidos adicionales"?

Los "extras" a los que se refiere aquí son los elementos parcelables que almacena a través de putExtra() . Los valores requestCode y flags también se guardan y recuperan, pero cuando la documentación se refiere a "extras" significa el getExtras() literal que Intents puede usar para llevar información adicional.

  • Eliminar alarma de AlarmManager mediante cancel () - Android
  • Android: Inicio de múltiples intentos pendientes a la misma hora con el Administrador de alarmas
  • Lectura de un mensaje NDEF desde una etiqueta NFC desde una aplicación de Android
  • ¿Qué sucede con PendingIntents cuando el usuario actualiza la aplicación?
  • AlarmManager activa PendingIntent demasiado pronto
  • Cómo utilizar las acciones de la notificación sin iniciar la actividad
  • Cómo reiniciar / actualizar el contenido de la actividad en la notificación haga clic
  • ¿Funcionará AlarmManager si mi aplicación no se está ejecutando?
  • 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?
  • ¿Cómo utilizar PendingIntent para comunicarse desde un servicio a un cliente / actividad?
  • Android: Crear una sola tarea con actividades de varias aplicaciones (problema Lauchmode)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.