En este video os explico un poco como es el ciclo de vida de una actividad en una aplicación Android. Os puede ayudar a entender mejor como se ejecuta una actividad y cuando entra en un estado u otro.
Los estados de una actividad son los siguientes:
- onCreate: es cuando se crea la actividad. En este estado es donde se crean las estructuras de datos, la interfaz, eventos y donde se pueden recibir o enviar datos desde otra actividad. Por eso este es el método obligatorio que tenemos que implementar a la hora de hacer una aplicación.
- onStart: después de onCreate pasamos a este estado, que indica que la actividad va a ser mostrada, es decir que se va a hacer visible.
- onRestart: se llama cuando una actividad se paró y se vuelve a llamar de nuevo.
- onResume: este estado se ejecuta cuando la actividad ya se ha cargado y el usuario ya puede interactuar con ella.
- onPause: se ejecuta cuando el sistema va a lanzar una segunda actividad, por lo que los recursos van a ir a esta segunda actividad.
- onStop: en este estado la actividad ya no es visible por el usuario, porque hay otra actividad que es visible.
- onDestroy: a este estado se llama cuando la actividad es totalmente destruida. Puede ocurrir que por requerimientos de memoria, la actividad se destruya sin llamar a este método.
DETALLES A TENER EN CUENTA
Cuando se crea una actividad los métodos que se llaman son (en este orden):
onCreate -> onStart -> onResume
Una actividad está encima de la pila, es visible y tiene foco en estos dos estados:
onResume y onPause
Los estados en que una actividad no es visible son:
onStart y onStop
Si llamamos al método finish() cuando una actividad está activa y tiene foco, se ejecuta directamente el método/estado onDestroy sin pasar por onPause u onStop.
No hace falta implementar todos los métodos de estos estados. Si hay algunos en los que nos viene muy bien ejecutar un tipo de acción u otro. Por ejemplo el método onPause podemos aprovecharlo para guardar datos, parar animaciones o recursos para que no se consuma CPU. Tenemos que tener cuidado porque hasta que no termine este estado, la siguiente actividad no se ejecutará (onResume), por lo que implementemos en este método no tiene que tardar mucho en ejecutarse.
También podemos usar el método onStart comprobar ciertos aspectos del teléfono como si tiene activo el gps o no.
En el vídeo podéis ver un ejemplo con una aplicación en la que se ve como se pasa de un estado a otro. Os recomiendo verlo. El proyecto que sale en el vídeo os lo podéis descargar AQUÍ.