Cambie los datos del paquete de intenciones antes de volver a crear una actividad después del cambio de orientación

StackOverflow https://stackoverflow.com/questions/1206418

  •  05-07-2019
  •  | 
  •  

Pregunta

Tengo una notificación que inicia mi actividad y pasa un mensaje utilizando la función putExtra () del intento. El mensaje se muestra al usuario en la función onCreate de la actividad. Cuando la aplicación se reinicia debido a un cambio de orientación, el mensaje se muestra nuevamente ya que aún se encuentra en los datos agrupados de la intención.

¿Cómo puedo eliminar los datos adicionales?

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á apareciendo después de cambiar la orientación, parece que la intención utilizada no es la que yo cambié, sino la 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?

¿Fue útil?

Solución

La solución (simple) es:

En lugar de llamar

bundle.remove("showMessage");

Ahora uso

getIntent().removeExtra("showMessage");

que funciona como se esperaba. Parece que getIntent (). GetExtras () devuelve una copia, no una referencia.

Otros consejos

Su enfoque onSaveInstanceState () es la respuesta correcta, AFAIK.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top