sábado, 4 de febrero de 2012

Ciclo de vida de una aplicación.

Desarrollo sobre la plataforma Android:



Hola a todos, en este post vamos a hablar sobre el ciclo de vida de una aplicación Android, para el que se pregunte porque, pues deberán saber que es una de las cosas a saber mas importantes sobre la programación en esta plataforma. Porque es tan importante se preguntaran, pues simplemente que el ciclo de vida es la forma en que una aplicación maneja la creación de los recursos, servicios, enlace a los datos, etc, etc. Así también como la destrucción de los mismos, para poder liberar los recursos y que estos no sigan consumiendo los pocos que podemos llegar a tener en nuestro dispositivo (recuerden que no estamos creando aplicaciones para una PC ;) ).
Como verán en la siguiente imagen, acá se gráfica, el ciclo de vida de una aplicación, que luego pasaremos a explica:


onCreate() : Se ejecuta cuando se crea la Activity por primera vez. Aquí es donde se deberían crear views, enlazar datos a listas,… en definitiva el proceso de inicialización de nuestra aplicación. (Dato: desde este estado no se puede matar la aplicación, desde este estado solo se podría pasar a onStart()).

onRestart(): Se ejecuta después de que la aplicación se haya detenido, justo después de que sea iniciada de nuevo. (Dato: desde este estado no se puede matar la aplicación, desde este estado solo se podría pasar a onStart()).

onStart(): Se ejecuta justo antes de que la aplicación aparezca visible para el usuario. Si la aplicación es un proceso en background el siguiente estado es onStop(), si la aplicación se ejecuta en foreground el siguiente método es onResume(). (Dato: desde este estado no se puede matar la aplicación, desde este estado solo se podría pasar a onResume() o onStop()).

onResume(): Se ejecuta cuando la Activity interactúa con el usuario. En éste punto la Activity está en la cima de la pila. (Dato: desde este estado no se puede matar la aplicación, desde este estado solo se podría pasar a onPause() ).


onPause(): Se ejecuta cuando el sistema está a punto de continuar una Activity anterior. Se utiliza típicamente para guardar datos que no se han grabado anteriormente, parar animaciones y otras acciones que consuman CPU. Seguida por onResume() si la actividad vuelve a primer plano o onStop() si es invisible para el usuario. (Dato: desde este estado se puede matar la aplicación, desde este estado solo se podría pasar a onResume() o onStop() ).


onStop(): Se ejecuta cuando la Activity deja de ser visible al usuario, porque otra Activity ha continuado y pasa a un lugar más prioritario de la pila. Puede ocurrir porque una nueva Activity ha sido creada, una Activity ya creada pasa a primer plano o ésta está siendo destruida. El siguiente método será onRestart() si la Activity vuelve a interaccionar con el usuario o por onDestroy() si la Activity será destruida.(Dato: desde este estado se puede matar la aplicación, desde este estado solo se podría pasar a onRestart() o onDestroy() ).

onDestroy(): Última llamada antes de destruir la Activity. Puede ocurrir porque la actividad está acabando (llamada a finish() ) , o porque el sistema destruirá la instancia para guardar espacio. Se puede distinguir esos escenarios con el método isFinishing().(Dato: desde este estado se puede matar la aplicación, desde este estado no se puede ir a otro).

Conocer todo el funcionamiento del ciclo de vida, es extremadamente importante, ya que con los mismos, serán donde manejaremos, el salvar los datos, la creación y destrucción de recursos, etc, etc. Vamos a dar un ejemplo la partida de un juego:
Cuando el usuario cierra la aplicación de manera inesperada, porque tiene que entender una llamada, o responder un mensaje. Si nosotros no manejamos este tipo de situaciones, perderíamos los datos de la partida, lo que no quedaría bien en nuestro programa. Así que antes de que se cierre, deberíamos recordar salvar los datos. Deberían pensar en cual de todos esos estados les rendiría mas, ya que si sobre cargamos nuestro dispositivo con muchas llamadas a salvar datos, la aplicación tendría un peor rendimiento. Lo que no se quedaría muy bien, y eso puede provocar que a los usuarios les moleste utilizar nuestro programa.


Bueno gente, esto es todo por este articulo,ya conocen el ciclo de vida, espero que se entienda lo importante que es conocerlo. Les recomiendo que busquen un poco mas de información sobre el tema, y además que realicen algunas pruebas, para que les ayude a entenderlo de forma mas didáctica. De todas maneras, esto lo seguiremos viendo todo el tipo, ya que es algo básico para la programación sobre esta plataforma.


Documentación Oficial:


Saludos a todos, Gabriel E. Pozo