domingo, 12 de junio de 2022

Qué son las Actividades en Android y cual es su ciclo de vida

Uno de los conceptos principales en el desarrollo de aplicaciones móviles, es el concepto de Activity, siendo estas la base de la aplicación, en esta oportunidad veremos en qué consisten y cuál es su ciclo de vida. 


En la página oficial de desarrolladores de android podremos encontrar una explicación más detallada de lo que representan las actividades (https://developer.android.com/guide/components/activities/intro-activities) aquí veremos una generalidad sobre las mismas y su ciclo de vida.

¿Qué es una Activity?

Ya vimos que aplicación android está conformada por diferentes componentes gráficos o views y adicional tienen una estructura de directorios que permite independizar la interfaz gráfica de la lógica de la aplicación, las pantallas son gestionadas mediante los archivos xml que contienen los layouts o gestores del contenido y la lógica se trabaja en las Actividades (Activities) qué corresponden a la clase Activity, existe también otro concepto llamado los fragments los cuales viven dentro de las actividades, pero esto es algo que trataremos más adelante.


La clase Activity es uno de los componentes principales en una aplicación precisamente son la base para la construcción de apps ya qué gestionan la lógica del sistema y con lo que va a interactuar el usuario, una aplicación android inicia con la instancia de una Activity la cual tiene un ciclo de vida definido para mantener la aplicación en funcionamiento.

Antes de adentrarnos en el ciclo de vida, es muy importante tener claro que el funcionamiento de una aplicación móvil difiere del funcionamiento del resto de aplicaciones, una app móvil no tiene un punto de partida especifico, a diferencia de una aplicación de escritorio que inicia por medio de un método main() una app puede ser iniciada desde cualquiera de sus pantallas (esto no quiere decir que nosotros no podamos dar un orden de inicio.)

Internamente cuando cambiamos de pantallas lo que se hace es un llamado entre actividades (o se reemplazan fragments en la misma actividad) y cuando cambiamos entre aplicaciones de la misma manera se invoca la aplicación llamando a su actividad inicial.

Una aplicación normalmente se compone de varias pantallas lo que equivale a tener varias actividades que se comunican entre si, aunque ya se mencionó que se puede iniciar la app desde cualquier actividad, siempre se define una actividad como la actividad principal MainActivity (aunque no necesariamente tiene que ser la primera que se muestre), y desde allí marcar el punto de partida para la navegación del sistema mediante el llamado a nuevas actividades o fragments.

Archivo Manifiesto (AndroidManifest.xml)

En una entrada anterior se habló del archivo manifest, este es un archivo de configuración que permite parametrizar elementos claves de la aplicación, aquí se encontrará información como el id de la app, el nombre, el icono, las actividades que contiene, permisos entre otros elementos importantes.

Cuando se crea una actividad, automáticamente androidStudio se encarga de parametrizarla en el archivo AndroidManifest.xml y allí se pueden agregar también filtros o propiedades para determinar acciones adicionales de la aplicación, por ejemplo en la imagen anterior se puede ver que el MainActivity es la actividad principal del sistema (la que primero se muestra) ya que se le agrega el <intent-filter> con la propiedad <action android:name="android.intent.action.MAIN" />

Ciclo de vida de las actividades.

Una Activity pasa por varios estados durante su ejecución, estos estados se dan mediante la interacción del usuario con la Activity, por ejemplo cuando se ingresa, se sale, se ingresa nuevamente o cuando se cierra, android nos permite controlar cada uno de estos estados mediante una serie de métodos definidos los cuales podemos implementar para gestionar el comportamiento, por ejemplo se puede pausar un reproductor de video cuando se cambia de pantalla o cancelar procesos de conexión cuando se sale de la aplicación, en la página de desarrolladores de android encontramos el detalle de estos métodos (https://developer.android.com/guide/components/activities/activity-lifecycle) allí podemos encontrar también el siguiente diagrama que muestra su funcionamiento:

Veamos un resumen de cada uno de los estados:

  • onCreate()

    Este método es creado por defecto en la actividad y se activa cuando esta inicia con el fin de referenciar el layout correspondiente la parte gráfica mediante el método setContentView(), este es el primer método que se ejecuta.

  • onStart()

    Al momento de cerrar el onCreate(), la actividad cambia su estado de creada a iniciada y se presenta al usuario, aquí es donde la vista y la actividad se hacen interactivas.

  • onResume()

    Después de iniciada la actividad se cambia al estado onResume() qué se encarga de procesar la información de interacción con el usuario, aquí se reconoce y captura todo lo que el usuario ingresa.

  • onPause()

    En caso de qué la Activity pierda el foco y se encuentre detenida se llama al estado de Pausa, por ejemplo cuando el usuario presione el botón de atrás o cambie de pantalla, significa que la actividad sigue parcialmente visible mientras se está saliendo de la actividad.

    Desde este estado se puede regresar nuevamente a onResume() o a onStop()

  • onStop()

    Este estado se inicia cuando la actividad ya no es visible para el usuario, puede darse porqué se elimina la actividad, se está reactivando una qué estaba detenida o porqué se está iniciando una nueva, en este caso la actividad en stop ya no es visible para el usuario, desde aquí se puede llamar a onRestart() o a onDestroy()

  • onRestart()

    El sistema ingresa a este estado cuando una actividad detenida va a iniciarse nuevamente, aquí se restaura el estado de la actividad desde el momento en que se detuvo y se hace el llamado a onStart()

  • onDestroy()

    Finalmente el sistema invoca a este método antes de eliminar la actividad, este es el último estado por el que pasa la actividad y se implementa cuando se deba garantizar el cierre o liberación de todos los recursos de una actividad

 

Estos métodos pueden ser implantados en el proyecto de la siguiente manera:


Así al lanzar la app, veremos el comportamiento en el lógcat.

 

Y listo, con esto vemos en que consisten las actividades y como podemos controlar el ciclo de vida, más adelante podemos seguir trabajando en la aplicación básica.

También te podría Interesar.

 
¿Hay algo que quieras anexar o comentar sobre esta entrada?  no dudes en hacerlo.....y si te gustó...... te invito a compartir y Suscribirte ingresando al botón "Participar en este sitio" para darte cuenta de mas entradas como esta ;)

 

No hay comentarios:

Publicar un comentario

Eres libre de realizar cualquier comentario, desde que pueda ayudar con gusto lo atenderé, y si es un critica, bienvenida sea!!!