Ciclo de vida de la actividad de Android: orden de estado cuando se inicia una nueva actividad
Si startActivity(Activity2);
Activity2 de Activity1 por esta manera: startActivity(Activity2);
Lo que se ejecuta primero: onStop()
(Actividad1) o onStart()
(Actividad2)?
¿Trabajan simultáneamente oa su vez? Si uno tras otro, ¿qué es primero?
- Android ¿cuánto tiempo nuestra actividad estará allí en la pila
- Método de clase de aplicación Android onCreate que se llama varias veces
- ¿Cómo comprobar si una actividad es la última en la pila de actividades de una aplicación?
- ¿Los objetos de Scala sobreviven a que la actividad se reinicie en Android?
- Ciclo de vida de la actividad lado a lado
Así que, en general: ¿cuál es el orden de estado de la actividad cuando la primera actividad comienza en segundo lugar, si este orden existe?
- Realizando operaciones de larga duración en onDestroy
- OnSaveInstanceState / onPause - espera hasta que el estado se salve por completo antes de permitir que se procese el proceso
- Android ¿Cómo volver a conectar a AsyncTask después onDestroy () y relanzar onCreate ()?
- Permitir que el diálogo se muestre antes o durante onPause ()?
- Vida de la aplicación Android: tal vez infinita?
- La aplicación se comporta diferente después de salir y volver a entrar
- ¿Cómo probar el código construido para salvar / restaurar el ciclo de vida de una actividad?
- Ciclo de vida de la actividad de Android después de salir del sueño
La clave es entender cómo se inicia la actividad. Cuando publica el método Intent en startActivity (), sólo pregunta al sistema que inicie esta actividad. El sistema siguiente intenta iniciar Activity2 y envía mensaje a Activity1. El orden es indeterminado y puede ser diferente en situaciones diferentes.
Parece que mi anwer estaba mal para la situación cuando ambas actividades funcionan dentro de este mismo proceso (app) Como señaló Daniil Popov: https://developer.android.com/guide/components/activities/activity-lifecycle.html (Coordinating activities section)
De acuerdo con la documentación, el onStart en Activity2 se llama before onStop en Activity1 (o, si lo prefiere, el os espera enStart en Activity2 para finalizar antes de llamar a onStop en Activity1).
Desde http://developer.android.com/guide/topics/fundamentals/activities.html :
El orden de las devoluciones de llamada del ciclo de vida está bien definido, particularmente cuando las dos actividades están en el mismo proceso y una está comenzando la otra. Este es el orden de operaciones que se producen cuando la Actividad A comienza Acividad B:
El método onPause () de la actividad A se ejecuta. Los métodos onCreate (), onStart () y onResume () de la actividad B se ejecutan en secuencia. (La actividad B ahora tiene enfoque de usuario.) Entonces, si la actividad A ya no es visible en la pantalla, su método onStop () se ejecuta.
Cuando se navega desde la primera actividad hasta el segundo, se llama al método onPause () seguido de onStop () y luego se llama al método onCreate () de la segunda actividad seguido de onStart () y onResume ().
También al navegar de nuevo a firstactivity presionando detrás la llave
OnPause () de segunda actividad se llama seguido de onStop () y luego se llama al método onRestart () de la primera actividad seguido de onStart () y onResume ().
Deje que la Actividad A comience la Actividad B llamando al método StartActivity (Intent) ya continuación la llamada al ciclo de vida sea la siguiente:
- Un crecer ()
- A en el inicio ()
- Un onResume ()
Ahora haga clic en el botón para startActivity (intención)
-
Una onPause ()
-
B onStart ()
-
B onResume ()
-
Un onStop ()
…………….. Si pulsa el botón Atrás de la Actividad B, entonces la llamada a LifeCycle será …
-
B onPause ()
-
Un onRestart ()
-
Un onStart ()
-
Un onResume ()
-
B onDestory ()
Ahora un escenario más "De la Actividad A iniciar la Actividad B llamando a StartActivity (Intent) al hacer clic en el botón y usar el método finish () dentro del método onstart () en la Actividad B"
-
Una onPause ()
-
B onStart ()
-
Un onResume ()
-
B onStop ()
-
B onDestory ()
Utilice Registro para publicar registros en Logcat.
Log.v("STATE", "Pause...and so on");
El orden de las devoluciones de llamada del ciclo de vida está bien definido, particularmente cuando las dos actividades están en el mismo proceso y una está comenzando la otra. Este es el orden de operaciones que se producen cuando la Actividad A comienza Acividad B:
El método onPause () de la actividad A se ejecuta. Los métodos onCreate (), onStart () y onResume () de la actividad B se ejecutan en secuencia. (La actividad B ahora tiene enfoque de usuario.) Entonces, si la actividad A ya no es visible en la pantalla, su método onStop () se ejecuta.
- ¿Cómo detectar cambios de orientación en el widget de pantalla de inicio?
- Android ImageView Escalado y traducción del problema