Introducción al ciclo de vida de una actividad en Android

Introducción al ciclo de vida de una actividad en Android

En Android toda actividad (y también todo fragmento) tiene lo que se conoce como ciclo de vida (activity lifecycle), término que hace alusión a los ciclos de vida de los animales, especialmente gráfico en los diferentes estados que atraviesa la mariposa en su proceso de metamorfosis.

En concreto, el ciclo de vida de una actividad es un conjunto de estados a través de los cuales se desarrolla una actividad, empezando cuando se crea por primera vez y terminando cuando se destruye (y su memoria es recuperada por el sistema). A medida que el usuario navega entre actividades y dentro y fuera de una aplicación, cada actividad se mueve entre distintos estados dentro del ciclo de vida de la actividad.

La siguiente imagen muestra los estados del ciclo de vida de una actividad:

Activity lifecycle

Entonces una actividad en Android puede estar en uno de esos estados, lo que determina si la actividad tiene instancia en la memoria, es visible para el usuario o está en primer plano y acepta interacción del usuario (tiene el foco):
  • Activa (Resumed / Running): La actividad está encima de la pila, lo que quiere decir que es visible y tiene el foco.
  • Visible (Started / Paused): La actividad es visible pero no tiene el foco. Se alcanza este estado cuando otra actividad pasa a activa con alguna parte transparente o que no ocupa toda la pantalla. Cuando una actividad está tapada por completo, pasa a estar parada.
  • Parada (Created / Stopped): Cuando la actividad no es visible. El programador debe guardar el estado de la interfaz de usuario, preferencias, etc.
  • Destruida (Destroyed): Cuando la actividad termina al invocarse el método finish(), o es matada por el sistema.

La clase Activity (y cualquier subclase de Activity, como AppCompatActivity) implementa un conjunto de métodos para invocar cada estado del ciclo de vida. Android invoca automáticamente estos métodos cuando la actividad se mueve de un estado a otro, pero podemos sobrescribirlos (override) para realizar tareas específicas en respuesta a los cambios de estado del ciclo de vida.

Por tanto, cada vez que una actividad cambia de estado se van a generar eventos que podrán ser capturados por ciertos métodos de la actividad. Dentro del ciclo de vida de una actividad existen métodos específicos para activar un estado desde otro estado, existiendo siete métodos como se ve en la siguiente imagen (en el ciclo de vida de un fragmento además existen otros métodos específicos):

Activity lifecycle

Más información sobre el ciclo de vida de las actividades en Android Developers: Actividades.

Comentarios

Entradas populares

Recursos gratis para aprender Kotlin

I/O: entrada y salida de datos en consola

Lectura y escritura de archivos