Activity: Ciclo de vida y definiciones

Jose Miguel Zea Guerrero
OpenLabPERU
Published in
5 min readMar 10, 2021

Introducción

En esta oportunidad podremos estudiar acerca de Activity. ¿Qué son y cómo funcionan? Desde mi perspectiva, esta clase es vital para poder conocer el funcionamiento básico en el desarrollo Android. Basta de palabras y vamos al ruedo.

¿Qué es un activity y por qué es importante?

Activity es un componente clave para android, debido a la forma en la que interactúan dentro del mismo. A diferencia de los paradigmas de programación que inician apps a través de la función main(), el sistema android inicia a través de las instancias de Activities. Por ejemplo, si llamamos un app y queremos compartir un mensaje a otra, el SO Android llama a las instancias de la Main Activity declarada en el manifest y así poder transmitir información.

¿Cómo funciona? Usando el manifest 101

El archivo de manifiesto describe información esencial de tu aplicación para las herramientas de creación de Android, el sistema operativo Android y Google Play.

Aquí podremos declarar el nombre del paquete de la aplicación, los componentes de la aplicación (activity, service, broadcast receivers, content providers), permisos de la aplicación, funciones de hardware y software que requiere la aplicación.

Una vez declaremos nuestra activity en el manifest, resultaría de la siguiente manera:

Nuestros activities pueden ser configurados con distintos filtros de intents, para ver dichas configuraciones te recomiendo ver el siguiente link:

https://developer.android.com/guide/components/intents-filters?hl=es-419#Receiving

Ciclo de vida — Teoría básica

Entender el ciclo de vida de un activity nos brinda la habilidad de manejar mejor los procesos implementados en nuestra aplicación, poder optimizar el uso de nuestros recursos y la inicialización de servicios. Desde los estados al cambiar a otra aplicación, hasta cómo manejar los cambios de procesos al recibir una llamada.

Para navegar por las transiciones entre las etapas del ciclo de vida de una actividad, la clase Activity proporciona un conjunto básico de seis devoluciones de llamadas: onCreate(), onStart(), onResume(), onPause(), onStop() y onDestroy(). El sistema invoca cada una de estas devoluciones de llamada cuando una operación entra en un nuevo estado.

  • onCreate()

Cuando se crea la actividad, esta entra en el estado Created. En el método onCreate(), ejecutas la lógica de arranque básica de la aplicación que debe ocurrir una sola vez en toda la vida de la actividad.

  • onStart()

Cuando la actividad entra en el estado Started, el sistema invoca esta devolución de llamada. La llamada onStart() hace que el usuario pueda ver la actividad mientras la app se prepara para que esta entre en primer plano y se convierta en interactiva. Por ejemplo, este método es donde la app inicializa el código que mantiene la IU.

  • onResume()

Cuando la actividad entra en el estado Resumed, pasa al primer plano y, a continuación, el sistema invoca la devolución de llamada onResume(). Este es el estado en el que la app interactúa con el usuario. La app permanece en este estado hasta que ocurre algún evento que la quita de foco. Tal evento podría ser, por ejemplo, recibir una llamada telefónica, que el usuario navegue a otra actividad o que se apague la pantalla del dispositivo.

  • onPause()

El sistema llama a este método a modo de primera indicación de que el usuario está abandonando tu actividad (aunque no siempre significa que está finalizando la actividad); esto indica que la actividad ya no está en primer plano (aunque puede seguir siendo visible si el usuario está en el modo multiventana). Utiliza el método onPause() para pausar o ajustar las operaciones que no deben continuar (o que deben continuar con moderación) mientras Activity se encuentra en estado Paused y que esperas reanudar en breve. Hay varias razones por las que una actividad puede entrar en este estado. Por ejemplo:

Algunos eventos interrumpen la ejecución de la app, como se describe en la sección onResume(). Este es el caso más común.

En Android 7.0 (API nivel 24) o versiones posteriores, varias apps se ejecutan en el modo multiventana. Debido a que solo una de las apps (ventanas) tiene foco en cualquier momento, el sistema pausa todas las demás.

Se abre una nueva actividad semitransparente (como un diálogo). Mientras la actividad siga siendo parcialmente visible, pero no esté en foco, se mantendrá pausada.

  • onStop()

Cuando el usuario ya no puede ver tu actividad, significa que ha entrado en el estado Stopped, y el sistema invoca la devolución de llamada onStop(). Esto puede ocurrir, por ejemplo, cuando una actividad recién lanzada cubre toda la pantalla. El sistema también puede llamar a onStop() cuando haya terminado la actividad y esté a punto de finalizar.

  • onDestroy()

Se llama a onDestroy() antes de que finalice la actividad. El sistema invoca esta devolución de llamada por los siguientes motivos:

La actividad está terminando (debido a que el usuario la descarta por completo o a que se llama a finish()).

El sistema está finalizando temporalmente la actividad debido a un cambio de configuración (como la rotación del dispositivo o el modo multiventana).

Implementando el Ciclo de Vida

En este punto mostraremos un poco del ciclo de vida en acción. Preparados? Aquí vamos!! :D

Primero añadiremos unos clásicos logs para visualizar cómo es que funciona nuestro ciclo de vida en un activity:

Procederemos a compilar nuestra aplicación:

Ahora podremos jugar con nuestra app, minimizarla, destruirla y ver como nuestra consola muestra los distintos tags:

Links de referencia

Reto

Implementar sus propios tags y mostrar los resultados :D

--

--