
Una aplicación en Android va a estar formada por un conjunto
de elementos básicos de interacción con el usuario, conocidos como actividades.
Además de varias actividades una aplicación también puede contener servicios.
Son las actividades las que realmente controlan el ciclo de vida de las
aplicaciones, dado que el usuario no cambia de aplicación, sino de actividad.
El sistema va a mantener una pila con las actividades previamente visualizadas,
de forma que el usuario va a poder regresar a la actividad anterior pulsando la
tecla «retorno».
En la mayoría de los casos, cada aplicación Android corre en
su propio proceso de Linux. Este proceso es creado para la aplicación cuando la
arrancamos y seguirá corriendo hasta que no sea necesario y el sistema reclame
recursos para otras aplicaciones y se los dé a éstas.
Tipos de procesos
Para decidir qué proceso debe ser liquidado, Android ordena
los procesos por importancia:
1. Foregound
Process. Es la aplicación que contiene la actividad que ahora mismo se está
mostrando en pantalla (Se ha llamado al método onResume ()). Habrá muy pocos
procesos Foreground corriendo a la vez en el sistema y estos procesos solamente
se liquidarán si la memoria es tan baja que ni matando al resto de procesos
tenemos los recursos necesarios.
2. Visible process.
Es el que contiene una actividad que es visible, pero no en primera fila (se ha
llamado al método onPause ()). Por ejemplo, estoy leyendo un email, y hago clic
en un enlace http y abre el navegador y me lleva a esa web. En ese momento el
navegador sería Foregound Process y el cliente de mail sería un Visible
process. Estos procesos son considerados importantes por el sistema operativo y
normalmente no se cierran.
3. Service process.
Es un servicio como los de cualquier unix. Estos procesos hacen cosas en
segundo plano que normalmente son importantes, el sistema nunca va a liquidar
un servicio a menos que sea necesario para mantener vivos todos los Visible y
Foreground.
4. Background
process. Es un proceso que contiene una actividad que actualmente no es visible
por el usuario, estos procesos no tienen demasiada importancia, puede ser un
programa que arranqué hace tiempo y no lo he vuelto a usar, pasa a estar en
background. Por eso es importante que cuando nuestra aplicación pase a
Background, liberar en la medida de lo posible todos los recursos que podamos.
5. Empty process. Es un proceso que no
alberga nada ya, lo usa Android como cache para cuando se crea un proceso
nuevo.
Android puede en cualquier momento pausar, parar, destruir
nuestra aplicación según las necesidades del momento y nosotros debemos
controlar todos estos eventos para hacer una aplicación robusta.
•OnCreate () Llamado
cuando la actividad es llamada por primera vez. Es donde debes crear la
inicialización normal de la aplicación, crear vistas, hacer los bind de los
datos, etc. Este método te da acceso al estado de la aplicación cuando se
cerró. Después de esta llamada siempre se llama al onStart ().
•OnRestart ()
Llamada cuando tu actividad ha sido parada, antes de volver a ser empezada.
Siempre viene después un onStart ().
•OnStart () Llamada cuando la actividad está siendo visible
por el usuario. Después de ésta, se puede ir al onResume () si la actividad va
a ser visible o se puede ir al onStop () si se esconde.
•OnResume ()
Llamada cuando la actividad va a empezar a interactuar con el usuario, en este
punto es el último punto antes de que el usuario ya vea la actividad y pueda
empezar a interactuar con ella. Siempre después de un onResume () viene un
onPause ().
•OnPause () Llamada
cuando el sistema va a empezar una nueva actividad. Ésta necesita parar
animaciones, y parar todo lo que esté haciendo. Hay que intentar que esta
llamada dure poco tiempo, porque hasta que no se ejecute este método no arranca
la siguiente actividad. Después de esta llamada puede venir un onResume () si
la actividad vuelve a primer plano o un onStop () si se hace invisible para el
usuario.
•OnStop ()
Llamada cuando la actividad ya no es visible al usuario, porque otra actividad
ha pasado a primer plano. Desde Aquí se puede ir al onRestart () si vuelve a
primer plano o al onDestroy () si se destruye del todo.
•OnDestroy ()
Esta es la llamada final a la actividad, después de ésta, es totalmente
destruida.
No hay comentarios:
Publicar un comentario