El ciclo de vida de una “activity” o actividad en Android es de lo primero que debemos conocer si queremos hacer el uso correcto de la misma en nuestra aplicación.
Continuamos con el Manual de desarrollo para Android con un artículo que nos debe aclarar algunas de las bases que debemos conocer perfectamente para dominar el desarrollo de Apps para este sistema operativo. No es otra que el ciclo de vida de una activity.
A diferencia de muchos sistemas o aplicaciones que se inician con un método "main()", que si vienes del mundo Java o C++ me imagino que te sonará, aquí la secuencia es diferente y es como se muestra en la imagen:
Tratare de explicar la imagen: lo que está encerrado en óvalos son lo que llamaremos “estados” y para llegar a un estado tenemos que pasar por un método o más, en la imagen se muestran los métodos y son los que tiene el prefijo “on”. Entonces, por ejemplo:
Ejemplo 1: Para llegar al estado "Created" de una actividad, pasamos por el método "onCreate()".
Ejemplo 2: Para pasar al estado "Started" desde el estado "Stopped" pasamos por los métodos "onRestart()" y "onStart()".
Espero que con esto quede claro cómo interpretar la imagen.
En Android se inicia con la invocación de métodos específicos que corresponden a etapas de vida. Tenemos una secuencia de métodos que devuelven una llamada e inician la actividad, también tenemos una secuencia de métodos que terminan la actividad.
Como ven en la imagen, tenemos una pirámide, esta primera inicia por la izquierda con el "onCreate()" y termina del lado derecho con el "onDestroy"; vamos del principio al final.
Que quede claro que no siempre utilizamos los métodos del ciclo vida, depende de lo que vamos a necesitar y cuándo lo vamos a necesitar, hay aplicaciones donde se aplican todos, ninguno o solo un par.
Tenemos los métodos:
- onCreate()
- onStart()
- onResume()
- onPause()
- onStop()
- onRestart()
- onDestroy()
onCreate()
Es el que debemos ejecutar en un inicio para definir, por ejemplo, la interfaz del usuario y también crear algunas variables de ámbito de la clase. Este método por lógica solo se debería ejecutar solo una vez, al momento de invocar la actividad. En este método casi siempre vamos a encontrar cómo se define un archivo XML, como la parte gráfica de la actividad o la configuración de la interfaz.
Cuando el método "onCreate()" termina de ejecutarse llama al método "onStart()" y "onResume()", esto sucede de manera muy rápida.
Técnicamente, la actividad se vuelve visible para nuestro usuario cuando llamamos en "onStart()", pero como sigue muy rápido al "onResume()" y se mantiene en ese estado hasta que suceda otra cosa. Por ejemplo, cuando se apaga la pantalla o cuando vamos a otra actividad, también en caso de recibir una llamada telefónica.
onStart()
Es donde la actividad se muestra ya al usuario como comentamos anteriormente.
onResume()
Es el estado en donde se encuentra en primer plano y el usuario interactúa con la actividad, podemos decir en español que es el estado “corriendo” o “ejecutando”.
onPaused()
Es cuando esta se encuentra parcialmente oscurecida por una actividad que se encuentra en el primer plano, por ejemplo está medio transparente o no cubre toda la pantalla, en este estado no se reciben datos de entrada del usuario y no puede ejecutarse código.
onStop()
En este estado se encuentra completamente invisible u oculto para el usuario, podemos decir que se encuentra en el “fondo”, en este estado podemos decir que todo se congela, por ejemplo las variables e información se mantiene pero no podemos ejecutar el código.
onRestart()
Este método se llama después del "onStop()" cuando la actividad actual se está volviendo a mostrar al usuario, es decir, cuando se regresa a la actividad. Después de este continua el "onStart()" y luego en "onResume()" y finalmente ya está de nuevo mostrándose la actividad al usuario.
onDestroy()
Cuando el sistema destruye su actividad se manda a llamar al método "onDestroy()" para la actividad. Este método es la última oportunidad que tenemos de limpiar los recursos y que si no eliminamos podrían no tener un buen rendimiento para el usuario en caso de olvidarlo. Es buena práctica asegurarse de que los hilos que creamos son destruidos y las acciones de larga duración también estén ya detenidas.
Con esto finalizamos este capítulo y toda la información que se plasma en este manual de Android sale de la documentación oficial: developer.android.com
José Dimas Luján
José Dimas es fundador de Ockham Ti, empresa de desarrollo de software, app móvi...