¿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?
- Cambiar android: Theme.Dialog para encender el cuadro de diálogo de AppCompat
- Cómo cambiar una RealmList a RealmResult?
- ¿Cómo cambiar el tipo de mapa de simple a satélite de PlacePicker de la API de Google Places?
- La adición de un día a un calendario en Android falla el 31
- RxJava: encadenamiento de observables
- No se puede crear una carpeta en el almacenamiento externo en android
- ¿Cómo administrar el estado de Android MediaPlayer, errores y excepciones?
- Formas de crear objetos JSON en Java
- ¿Cómo conectarse a SQLite DB con contraseña con OrmLite?
- Obtén el encabezado de HttpResponse en Android
- Firebase android proxy setting
- Singleton objeto está recreando
- Maven plugin para obfuscation código Java
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.
- ¿Cómo forzar salir de la aplicación de Android y reiniciarla?
- Error después de agregar biblioteca de juegos de servicios: ': app: transformClassesWithJarMergingForDebug'