Como ya sabemos las aplicaciones se ejecutan en la DVM ( Dalvil Virtula Machine), se enlazan las clases, se complia la clase R y se empaqueta en un archivo .dex.
El código se optimiza para utilizar los registros del procesador en lugar de la pila (memoria), pero vamos ver graficamente y al por menor el ciclo de vida de una actividad y sus componentes:
Estado
|
Descripción
|
Abortable
|
Siguiente
|
onCreate() | Se ejecuta cuando se crea la Activity por primera vez. Aquí es donde se deberían crear views, enlazar datos a listas,… en definitiva el proceso de inicialización de nuestra aplicación. |
No
|
onStart() |
onRestart() | Se ejecuta después de que la aplicación se haya detenido, justo después de que sea iniciada de nuevo. |
No
|
onStart() |
onStart() | Se ejecuta justo antes de que la aplicación aparezca visible para el usuario. Si la aplicación es un proceso en background el siguiente estado es onStop(), si la aplicación se ejecuta en foreground el siguiente método es onResume(). |
No
|
onResume()
o onStop() |
onResume( | Se ejecuta cuando la Activity interactúa con el usuario. En éste punto la Activity está en la cima de la pila. |
No
|
onPause() |
onPause() | Se ejecuta cuando el sistema está a punto de continuar una Activity anterior. Se utiliza típicamente para guardar datos que no se han grabado anteriormente, parar animaciones y otras acciones que consuman CPU. Seguida por onResume() si la actividad vuelve a primer plano o onStop() si es invisible para el usuario. |
Si
|
onResume()
o onStop() |
onStop() | Se ejecuta cuando la Activity deja de ser visible al usuario, porque otra Activity ha continuado y pasa a un lugar más prioritario de la pila. Puede ocurrir porque una nueva Activity ha sido creada, una Activity ya creada pasa a primer plano o ésta está siendo destruida. El siguiente método será onRestart() si la Activity vuelve a interaccionar con el usuario o por onDestroy() si la Activity será destruida. |
Si
|
onRestart()
o onDestroy() |
onDestroy() | Última llamada antes de destruir la Activity. Puede ocurrir porque la actividad está acabando (llamada a finish() ) , o porque el sistema destruirá la instancia para guardar espacio. Se puede distinguir esos escenarios con el método isFinishing(). |
Si
|
NADA |
(y)