Cuando se lanza una actividad en android implica que la actividad anterior sea parada temporalmente. Esto no significa que la anterior actividad sea destruida sino que simplemente pierde el foco y se puede recuperar al volver a ella (botón back). Las actividades solo son destruidas cuando el sistema así lo decida para resolver problemas de memoria. La preocupación del programador debe de centrarse en que la aplicación esté disponible cuando el usuario pulse el botón volver. La práctica más habitual es guardar el estado de la aplicación cuando ésta pierda el foco y recuperar su estado cuando vuelva a recuperar el foco.
Una actividad puede pasar por 3 estados diferentes:
- Activa: la pantalla o actividad se encuentra visible por el usuario.
- Pausada: la actividad ha perdido el foco pero sigue visible total o parcialmente por el usuario. Un ejemplo sería una ventana de diálogo que contiene el foco pero que está ligada a la actividad principal.
- Parada: la actividad no está visible.
El ciclo de vida de una actividad contiene los siguientes métodos:
- onCreate: se invoca cuando la actividad se crea por primera vez. Es aquí donde deberemos inicializar los datos que contendrá así como sus vistas. De esta manera es importante sobreescribir este método cada vez que definamos una actividad. El método recibe un parámetro de tipo Bundle. El valor de este parámetro será nulo si se ejecuta por primera vez pero en cambio contendrá la información suficiente para restaurar la actividad en caso de recuperación.
- onRestart: se llama a este método cuando la actividad había sido detenida previamente pero se va a volver a visualizar.
- onStart: este método se ejecuta cuando la actividad va a ser visualizada.
- onResume: este método se ejecutará siempre que la aplicación este preparada para interactuar con el usuario. Este es el lugar idóneo para inicializar datos.
- onPause: se invoca cuando la actividad va a perder el foco. Podemos ver este método como un aviso de que la pantalla va a dejar de ser visible y por tanto es un lugar idóneo para guardar el estado de la actividad.
- onStop: se llama a este método cuando la actividad ha sido ocultada por completo.
- onDestroy: método por el que pasa cuando la actividad va a ser destruida por completo.