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:
- Android: ¿cómo abrir una notificación de envío directo que, cuando se cierre, vuelve a la pantalla de inicio?
- Intentos pendientes no disparados
- ¿Por qué mi administrador de alarmas de Android está disparando al instante?
- AppWidget PendingIntent no funciona después de reiniciar el Lanzador
- Android Widget deja de funcionar aleatoriamente
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.
- PendingIntent de la segunda acción sobrescribe la primera acción y el contenidoIntent for Notification
- ¿Cómo usar "goAsync" para broadcastReceiver?
- No puedo obtener los extras de mi intención?
- Uso de AlarmManager para actualizar widgets manualmente
- ¿Qué sucede con las alarmas establecidas a través del administrador de alarmas de una aplicación, si la aplicación se desinstala
- Notificación RemoteView en el oyente de clics
- Cómo detener una alarma en android
- La acción de notificación de Android no se activa (PendingIntent)
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.
- ¿Cómo dibujar muchos rectángulos en lona con buen funcionamiento?
- Establecer minHeight en RelativeLayout, deshabilita alignBaseline?