OnSaveInstanceState no está guardando mis valores (onCreate input El paquete siempre es nulo)

Paquete de ahorro (actividad A):

@Override protected void onSaveInstanceState(Bundle outState) { outState.putString("test", "value"); super.onSaveInstanceState(outState); } 

Navegar a la actividad B;

 startActivity(new Intent(getBaseContext(), B.class)); 

Volviendo a la actividad A:

 startActivity(new Intent(getBaseContext(), A.class)); 

Tratando de cargar el valor que escribí para agrupar en la actividad A:

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.d("MY", "saved instance is null"+ Boolean.toString(savedInstanceState == null)); } 

Devuelve siempre savedInstanceState = null. Lo que me falta aquí?

OnRestoreInstanceState nunca se activa cuando vuelvo a la actividad principal

No hay nada mal con su código. Pruebe a girar el dispositivo cuando en la actividad A. Verá lo siguiente en el registro, lo que significa que su onSaveInstanceState () está funcionando bien:

 saved instance is nullfalse 

Aquí hay un extracto del sitio para desarrolladores de Android , que puede resultar interesante:

El método de devolución de llamada en el que puede guardar información sobre el estado actual de su actividad es onSaveInstanceState (). El sistema llama a este método antes de hacer la actividad vulnerable a ser destruido y lo pasa un objeto Bundle. El Bundle es donde puede almacenar información de estado sobre la actividad como pares nombre-valor, utilizando métodos como putString (). Entonces, si el sistema mata el proceso de su actividad y el usuario vuelve a su actividad, el sistema pasa el paquete a onCreate () para que pueda restaurar el estado de actividad que guardó durante onSaveInstanceState (). Si no hay información de estado que restaurar, el paquete que se pasa a onCreate () es nulo.

Nota: No se garantiza que se llamará onSaveInstanceState () antes de que se destruya la actividad, ya que hay casos en los que no será necesario guardar el estado (por ejemplo, cuando el usuario abandona su actividad con la tecla BACK, porque Usuario está cerrando explícitamente la actividad). Si el método se llama, siempre se llama antes onStop () y posiblemente antes onPause ().

Tengo esta solución por tener:

 intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 

Cuando se vuelve a iniciar la intención antigua que tiene el estado guardado de fondo. Sin esta bandera, creo que cuando startActivity se llama, crea una nueva instancia de la actividad en lugar de obtener la antigua de la pila.

Tienes que hacer super.onSaveInstanceState (outState) antes de añadir contenido a él.

Si navega a otra actividad y regresa, la mejor manera es guardarla en SharedPreference en el método onPause() , que está obligado a ejecutar cuando se carga una nueva actividad. En la otra Activity , se puede acceder al valor en onCreate() accediendo a la preferencia compartida.

En caso de que quiera retener el estado de su fragmento sobre una rotación del dispositivo y usted se pregunta que onSaveInstanceState nunca se llama:

  1. Compruebe si llama a super.onSaveInstanceState(outState); En todas sus funciones onSaveInstanceState .
  2. Comprueba que no tengas android:configChanges en tu AndroidManifest.xml.
  • ¿Cómo puedo mostrar un diálogo Progress entre dos actividades?
  • Android onResume adaptador de lista de actualización
  • No hay animación para Android al pasar de una actividad de retrato a una actividad de paisaje
  • Android - ¿Cómo anular el botón "Atrás" para que no termine () mi actividad?
  • ¿Cómo usar RecyclerView de acuerdo con la pantalla del dispositivo?
  • ¿Cómo puedo mostrar un diálogo sobre la actividad actualmente visible en android?
  • Iniciar de forma programática la actividad "Agregar una cuenta de Google" en Android
  • ¿Cómo establezco la actividad principal de una actividad en tiempo de ejecución?
  • ¿Cómo crear un servicio de fondo siempre en ejecución?
  • Cómo agregar un texto largo con muchos párrafos en string.xml en android
  • Cómo ejecutar la actividad en segundo plano en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.