Cada componente tiene un ciclo de vida distinto. Las superclases de estos componentes tienen métodos callback que les permiten reaccionar ante un cambio de estado. Cada método callback está obligado a llamar al mismo método de su padre.

Ciclo de vida de los Receiver

Tienen un ciclo de vida muy corto, ya que se activan al producirse un mensaje de difusión, que capturan con el método callback:



void onReceive(Context curContext, Intent broadcastMsg)

Si este método se está ejecutando, se considera el Receiver activo. Esto supone un problema si la tarea a ejecutar es pesada y la lanzamos a un hilo aparte. Cuando termine el método, Android considera que el receiver está inactivo, pero el hilo sigue ejecutándose y puede ser eliminado de la pila, interrumpiendo la tarea.

Se soluciona lanzando un servicio desde este método que se encarga de hacer las tareas pesadas, así, al tener el servicio su propio ciclo de vida, seguirá ejecutandose, aunque el receiver se considere inactivo.

Ciclo de vida de los ContentProvider

Su ciclo es muy corto, permanecen activos mientras sean referenciados por un ContentResolver.

Ciclo de vida de las Actividades

Tiene tres estados:

La clase Activity dispone de métodos que se llaman cada vez que ésta cambia de estado, para permitirnos realiar tareas como guardar los datos antes de cambiar de estado, y cargar la actividad más rápido la proxima vez que se muestre. A continuación un diagrama con los distintos estados por los que pasa una actividad:

Un ejemplo de uso de estos métodos puede ser cuando tenemos una aplicación que carga datos de internet, deberíamos cargar los datos al inicio de la actividad, una vez descargados, guardaríamos el estado de la actividad para que si es destruida, no sea necesario volver a descargar los datos.

Para realizar esta operación usaríamos el método onSavedInstanceState(), que crearía un Bundle con los datos necesarios que pasaríamos al método onCreate() la segunda vez que cargaramos la actividad, sin necesidad de volver a descargar los datos.

Ciclo de vida de Service

Los servicios se pueden usar de dos formas, dependiendo de como lo lancemos, su ciclo será uno u otro.

A continuación el diagrama con el ciclo de vida de los servicios:

Siguiente Tema: Fundamentos programación Android: Limpieza de Procesos