Anuncios

Bienvenidos sean a este post, en el post anterior hablamos sobre que es un thread y que son los ciclos del juego pero hoy hablaremos sobre el ciclo de vida de una actividad.

Anuncios
Anuncios

Hasta ahora siempre que hicimos aplicaciones usamos un metodo llamado onCreate y en todos los casos utilizamos previamente la palabra Override la cual nos permitira ejecutarlo pero con el codigo que necesitemos, cuando utilizamos nuestro dispositivo habran notado que trabaja un poco diferente con respecto a otros sistemas operativos, por ejemplo podes estar usando una app para chequear tu facebook, te llega una notificacion de un correo electronico y accedes al mismo, mientras lo lees puede llegar una notificacion de Twitter e ir hacia app pero a su vez nos puede volver a notificar la app de Facebook sobre un post y asi con el resto de las app en nuestro dispositivo, todas esta idas y vueltas entre las apps conlleva un monton de administracion por parte del sistema operativo independientemente de la individualidad de las aplicaciones en si.

La diferencia entre Android y una pc de escritorio, siempre sera que a pesar de que el usuario decida cual aplicacion sera utilizada, el sistema operativo decide como y cuando cierra (destruye) una aplicacion y los datos del usuario (p.e. el puntaje, el thread y todo lo relacionado) junto con ello, esto es debido a la limitada memoria de los dispositivos, por ende sera un tema que debemos considerar a la hora de programar nuestro codigo.

Anuncios

El sistema operativo Android trabaja con fases para las aplicaciones, es decir que dependiendo de la fase el sistema decide que hacer con la aplicacion y esto nos permite hacer un uso correcto de los recursos de nuestro dispositivo y nosotros como desarrolladores podemos interactuar con los mismos, si bien Android trabaja con estas fases de una forma mas compleja podemos resumirlas de la siguiente manera:

  • Siendo creado (create)
  • Iniciando (starting)
  • Retomando (resuming)
  • Corriendo (running)
  • Pausando (pausing)
  • Deteniendo (stopping)
  • Siendo destruido (destroy)
Anuncios
Anuncios

Una forma de resumirlo es: cuando apretamos el icono de una app esta invoca a onCreate lo cual entra en estado Siendo creado, despues pasaremos al estado Iniciando para finalmente quedar en estado Corriendo, esto mientras se esta ejecutando pero si lo pasamos a segundo plano esta pasara a la fase de Pausado, si volvieramos a nuestra aplicacion esta pasara al estado Retomando.

Por ultimo tenemos las fases Deteniendo y Destruyendo las cuales son asignadas por el Sistema Operativo porque si bien podemos cerrar las aplicaciones y luego pasara a estas fases, primero Deteniendo y luego Destruyendo, si Android se empieza a quedar sin recursos mira cuales aplicaciones estan con la fase de Pausada y procede a destruirlas para evitar destruir las que esten en estado Corriendo, pero porque mencionamos esto si en el fondo no esta bajo nuestro control?, esto es para saber lo siguiente:

  • Es bueno saber que existen
  • Rara vez interactuaremos con ellos
  • Haremos cosas paso a paso cuando sea necesario
Anuncios

Lo bueno en Android es que nos permite interactuar con estas fases de una manera muy practica, por ejemplo el antes mencionado onCreate sera utilizado para cuando nuestra aplicacion inicia por primera vez antes de pasar al estado Iniciado, a continuacion veamos el listado de los metodos para poder manejar las distintas fases:

  • onCreate, se usa cuando se crea la aplicacion y en general se usa para iniciar lo basico de nuestra app
  • onStart, es para cuando supero la fase anterior y se inicia, en general no interactuamos con esta fase
  • onResume, se ejecuta despues de la anterior pero usualmente se usa para cuando vuelve del estado pausado
  • onPause, se ejecuta cuando se pausa la aplicacion o cuando pasa a segundo plano
  • onStop, se ejecuta cuando detiene todo lo realizado por onCreate o es invocado por el sistema para liberar recursos
  • onDestroy, se ejecuta cuando definitivamente se elimina la aplicacion del equipo.
Anuncios

Como podran deducir las tres primeras fases se usan para el inicio de nuestras aplicaciones y las ultimas tres son para la eliminacion de nuestra aplicacion, en realidad las ultimas dos porque onPause y onResume son mas usadas para cuando pasamos nuestra aplicacion en segundo plano y/o la retomamos, un ultimo tema a comentar es que las aplicaciones en Android tambien poseen cierta jerarquia que sumado con el estado son lo que determinan si Android lo destruye o no, por ejemplo no es lo mismo una aplicacion nuestra que un servicio del Sistema Operativo por ende Android siempre prioriza por las aplicaciones externas al momento de recuperar recursos.

Anuncios
Nota: En caso de querer saber mas sobre ciclos de vida de una aplicacion les recomiendo este post y este otro post donde lo explico bien a fondo.
Anuncios

En resumen, hoy hemos visto de una manera muy superficial como son los ciclos de vida de una aplicacion, como los maneja Android, como son sus distintas fases, en cuales podemos interactuar y para que nos podrian ayudar, las que no podremos interactuar, como el sistema operativo interactua y administra los recursos de nuestro dispositivo mediante las fases, espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Tengo un Patreon donde podes acceder de manera exclusiva a material para este blog antes de ser publicado, sigue los pasos del link para saber como.

Tambien podes donar

Es para mantenimiento del sitio, gracias!

$1.00