4.3. Ciclo de vida de una actividad
Según se deduce de lo explicado más arriba, a lo largo de su vida, una actividad puede pasar, en general, por los siguientes estados:
-
Inicial: La actividad aún no se encuentra en memoria. Durante la puesta en marcha, el sistema irá ejecutando varios de sus métodos, que será donde habremos incluido el código de inicialización apropiado. Cuando termine este proceso, la actividad estará en estado Activo. La transición desde el estado Inicial al estado Activo suele ser la más exigente en tiempo de proceso.
-
Una observación:
Que una actividad se encuentre activa no significa que esté consumiendo mucho tiempo de computación. Podría, sencillamente, estar esperando a que el usuario escribiera algo.
Del mismo modo, una actividad detenida podría estar realizando una importante tarea en segundo plano.
Los estados hacen referencia a la situación de la actividad con respecto a la entrada del usuario.
Activo: El usuario ha iniciado la actividad y está interactuando con ella, por lo que se encuentra en primer plano. La actividad tiene la mayor prioridad en cuanto al uso de recursos con el fin de que se ejecute lo más rápido posible y, cualquier acción que realice el usuario en ese momento, será recibida por ella. Sólo habrá una actividad en este estado cada vez y suele decirse que la actividad tiene el foco.
-
Detenido: El usuario ha iniciado la actividad y sigue ejecutándose, pero se encuentra oculta por otras actividades que se han iniciado después. En este estado, la actividad no muestra información al usuario, pero puede enviar notificaciones. Estando detenida, la actividad puede volver a obtener el foco o ser terminada y eliminada de la memoria. Las actividades se mantienen en este estado porque el usuario puede volver a ellas en cualquier momento y consume menos recursos su puesta en funcionamiento que si se iniciara desde cero.
-
Terminado: El sistema finaliza la actividad porque no dispone de memoria. También pueden existir actividades en este estado si no han sido iniciadas después de reiniciar el dispositivo. El programador puede indicar que se ejecuten determinadas acciones justo antes de que ocurra esto, sin embargo, no tendrá ninguna garantía de que sean tomadas en consideración, porque una actividad puede ser destruida estando en pausa o detenida.
Toda actividad debe disponer de una serie de métodos que contengan el código a ejecutar cuando el sistema necesite cambiar su estado. Estos métodos son los siguientes:
En la siguiente imagen tenemos un esquema donde se muestra el ciclo de vida completo de una actividad ejecutándose en Android. Para una comprensión completa, te recomiendo que hagas una lectura comparativa del esquema y de la tabla anterior:
|
|
|