¿Cuándo son TODOS los casos en que se llama al método onSaveInstanceState ()?

Todas las fuentes que he leído han mencionado un par de casos y concluido con "algunos otros casos". ¿Cuáles son TODOS los casos en que el método onSaveInstanceState se llama en una vista / actividad?

El doctor dice

Este método se llama antes de que una actividad se pueda matar de modo que cuando vuelva algún tiempo en el futuro pueda restaurar su estado.

OnSaveInstanceState () se llamará de forma predeterminada para una vista si tiene un id.

Google dijo: "La implementación por defecto se encarga de la mayoría de la UI por instancia de estado para usted llamando a onSaveInstanceState () en cada vista de la jerarquía que tiene un id ".

Más información aquí .

Siempre que haya una matanza suave de la actividad. Es decir, cuando la orientación cambia o cuando el proceso es destruido por el androide debido a la baja memoria.

No se llama cuando el usuario a sabiendas navega lejos de la actividad.

Consulte este enlace: https://sites.google.com/site/jalcomputing/home/mac-osx-android-programming-tutorial/saving-instance-state

También tenga en cuenta que onSaveInstanceState se puede llamar a un fragmento directamente después de onCreate ( onCreateView , onActivityCreated , onStart y onResume NO se llamará), si el fragmento se adjunta a una actividad pero no se muestra, a continuación, se destruye. Por lo tanto, debe asegurarse de que todo lo que haga referencia en onSaveInstanceState se inicialice en onCreate , de lo contrario se arriesga a una NullPointerException .

  • OnSaveInstanceState () se llama cuando hay un cambio de orientación o el usuario presiona el botón de inicio.
  • Si hay otra actividad delante de una actividad y el sistema operativo mata la actividad oculta para liberar memoria (o cuando se necesita memoria en otro lugar), entonces se llama onSaveInstanceState () para que la actividad pueda guardar su información de estado que se restaura utilizando onRestoreInstanceState () Cuando el usuario inicie esa actividad la próxima vez.
  • Las vistas predeterminadas de Android guardan su estado mediante una llamada a View.onSaveInstanceState que se restaura mediante la implementación predeterminada de onRestoreInstanceState

Según doc

Si el usuario interactúa con una actividad y presiona el botón Atrás o si se llama al método finish () de una actividad, la actividad se quita de la pila de actividad actual y se recicla. En este caso no hay estado de instancia para guardar y el método onSaveInstanceState () no se llama.

Si el usuario interactúa con una actividad y presiona el botón Inicio, se debe guardar el estado de la instancia de actividad. Se llama al método onSaveInstanceState (). Si el usuario reinicia la aplicación, reanudará o reiniciará la última actividad en ejecución. Si reinicia la actividad, proporciona el paquete con los datos guardados a los métodos onRestoreInstanceState () y onCreate ().

Si anula onSaveInstanceState () y onRestoreInstanceState () debe llamar a la super implementación del mismo, ya que las vistas predeterminadas de Android almacenan sus datos a través de una llamada a View.onSaveInstanceState del método onSaveInstanceState () de la actividad. Por ejemplo, EditText almacena su contenido a través de la llamada predeterminada de este método.

Este método no llamó cuando el usuario presiona el botón de "vuelta", éste es uno de ese caso.

OnSaveInstanceState se llama cuando la actividad está fuera de veiw .. como cuando u presione la tecla de inicio, onSaveInstanceState se llama.

  • Cuándo utilizar Enum / Int Constantes
  • ¿Es SpannableString.setSpan () 2º parm 0-based?
  • Diferentes formas de publicar valores json en Server
  • Theme.AppCompat.Light.DarkActionBar - No se encontró recurso
  • Android: cómo utilizar un temporizador
  • NumberFormatException en GSON al convertir String a doble
  • ¿Cómo puedo descargar el archivo mediante webview? (Este caso es raro)
  • Pruebas en modo "Avión" en Android Emulator
  • Personajes extraños en html webview
  • ¿Cómo entender el usuario es interactuar con el teléfono (Android)?
  • Solicitud de orientación para crear Custom SeekBar en Android. (Como se muestra en la imagen)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.