Cambiar los datos del paquete de intenciones antes de volver a crear una actividad después del cambio de orientación
Tengo una notificación que inicia mi actividad y pasa mensajes usando la función putExtra () de la intención. El mensaje se muestra entonces al usuario en la función onCreate de la actividad. Cuando se reinicia la aplicación debido a un cambio de orientación, el mensaje se muestra nuevamente, ya que todavía está en los datos agrupados de la intención.
¿Cómo puedo eliminar los datos adicionales?
- Cómo utilizar writeStringArray () y readStringArray () en una parcela
- Android - ¿Cómo iniciar una aplicación de terceros con el nombre del paquete?
- Android: Analizar el error al analizar el manifiesto. Descontinuación de la instalación
- (A) IQ.toXml () de Smack devuelve XML sin elementos secundarios personalizados
- Estructura del paquete de patrones de Android MVP
He intentado lo siguiente:
Bundle bundle = getIntent().getExtras(); if (bundle.getBoolean("showMessage")) { // ... show message that is in bundle.getString("message") // remove message bundle.remove("showMessage"); }
Pero el mensaje seguirá siendo mostrado después de la orientación cambiada, parece que la intención utilizada no es la que he cambiado, pero el original. La única solución que encontré es guardar el showMessage adicionalmente en o nSaveInstanceState()
. ¿Hay otra manera? ¿O es este el camino a seguir?
- Qué es onCreate (Bundle savedInstanceState)
- Parcelable, ¿qué es newArray para?
- Cómo enviar objetos a través de un paquete
- GetExtra de Intent lanzado desde un objeto pendingIntent
- Cómo pasar un valor de un fragmento a otro en Android?
- Utilice Parcelable para pasar un objeto de una actividad de android a otra
- ¿Cómo instalar aplicaciones con el mismo nombre de paquete en android?
- Estructura del paquete Android Mejor práctica
La solución (simple) es:
En lugar de llamar
bundle.remove("showMessage");
Ahora uso
getIntent().removeExtra("showMessage");
Que funciona como se esperaba. Parece getIntent (). GetExtras () devuelve una copia, no una referencia.
Su enfoque onSaveInstanceState()
es la respuesta correcta, AFAIK.
- Cómo gestionar el objeto de respuesta de la API de Facebook de Android
- ListView onclick va a una nueva actividad