¿Ciclo de vida de la actividad?

Creo que mis ideas sobre el ciclo de vida de la actividad y los paquetes
Están un poco confundidos, ¿me pueden ayudar?

Supongamos que el usuario abre la actividad A desde la pantalla de inicio,
Actividad A "llama" la actividad B que llena la pantalla.
En este evento onSaveInstanceState() se llama a la actividad A, luego onPause() y onStop() .
Dado que hay demasiadas aplicaciones en ejecución en el sistema,
Andorid decide matar la actividad de alojamiento del proceso.

Cuando el usuario regresa a la actividad A , onCreate () se llama a
Use el paquete (establecido durante la última llamada de onSaveInstaceStae ()) para restaurar el estado. Entonces onStart() , onRestoreInsanceState()
Y onResume() se llaman,
¿Estoy bien?

A continuación, supongamos que el usuario presiona la tecla de retroceso para salir de la actividad A
onPause() , onStop() y onDestory() se llaman en secuencia en la actividad A (la llamada de onDestroy() podría posponerse sin embargo) onSaveInsanceState() no debería ser llamado en este escenario.

Cuando el usuario abre otra vez la actividad A , el paquete
Pasado a onCreate () es nulo, ¿verdad?

Ahora supongamos que el usuario gira la pantalla onSaveInsanceState() , OnPause() , OnStop() , OnDestroy() se llaman
Entonces onCreate() con el paquete configurado por la última llamada a onSaveInsanceState() ,
Y luego onStart (), y onRestore (). ¿Estoy bien?

Mi conjetura es que:

Cuando el usuario crea un ativity, el paquete pasado a onCreate() es siempre null y onRestoreState() nunca se llama, pero cuando el sistema lo crea, por ejemplo, cuando mató la actividad debido a memoria baja o debido a un evento de rotación, El paquete que se pasa es el establecido por la última llamada de onSaveInstanceState ().

¿Es mi conjetura correcta?

Gracias y lo siento por mi pobre inglés.

PS: Creo que onRestoreInstanceState() se pasa el mismo paquete se pasa onCreate() pero el estado típicamente se restaura con onCreate() .

Interesante pregunta – nunca pensé en ello.

Eche un vistazo a la documentación, onCreate() y onSaveInstanceState() .

Esto responde al menos a su pregunta de qué Bundle se suministrará a onCreate() .

Desafortunadamente no existe una definición exacta de los eventos en los que se llama onSaveInstanceState() , pero supongo que se llama por defecto en todas las situaciones relevantes (cualquiera que sea …), pero puede averiguar algunas situaciones (por ejemplo, girar la pantalla ) Poniendo Log.i () en LogCat.

OnRestoreInstanceState () se pasa el mismo paquete se pasa onCreate () es correcto, y el sistema reinicia la actividad por llamada onCreate () y también llamada onRestoreInstanceState (), el paquete será nulo si se obtiene de onCreate () cuando se inició la actividad por primera vez .

Dado que hay demasiadas aplicaciones que se ejecutan actualmente en el sistema, andorid decide matar la actividad de alojamiento de proceso A.

Esta es una situación muy común. Además, puedes emular esta acción con la opción de desarrolladores.

Introduzca aquí la descripción de la imagen

En este caso, cada actividad, que se trasladó al fondo, se destruirá automáticamente.

Acerca de Bundle en OnCreate.

Puedo obtener de mi memoria sólo dos casos cuando se llamará OnCreate con un paquete no nulo. Primero – descrito anteriormente. Segundo caso – rotación de la pantalla.

Cuando inicia la aplicación Android calles

  • Crecer
  • En el inicio
  • En resumen

Después de eso permite hacer la rotación de la pantalla. Android llamará

  • OnSaveInstanceState
  • Una interrupción
  • En la parada
  • Destruir
  • Crecer
  • En el inicio
  • OnRestoreInstanceState
  • En resumen

Cuanta más información se puede encontrar sobre el tema acerca de la recreación

  • Ciclo de vida de la actividad de Android
  • ¿Por qué "onPause" no se llama en la siguiente situación?
  • OnOrientationChanged () se llama cuando OrientationEventListener está deshabilitado
  • El método android finish () no borra la aplicación de la memoria
  • ¿OnDestroy () o finish () matan realmente la actividad?
  • Ciclo de vida del fragmento - ¿Qué método se llama mostrar / ocultar?
  • GoogleMaps - llamando a OnPause ()
  • Ciclo de vida de actividad de Android y ciclo de código nativo de JNI
  • Estado de actividad de ahorro en la onPause
  • Actividad creada dos veces
  • Ciclo de vida de la actividad de Android y dispositivo de bloqueo / desbloqueo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.