Estados de una actividad en Android

Una Actividad en Android es un componente de una aplicación que muestra contenidos a los usuarios y que permite que éstos interactúen con dicha aplicación. Es lo que podríamos entender como una “pantalla” o un “formulario”, para aquellos que estén acostumbrados a aplicaciones de escritorio, o una “web” para los que estén más familiarizados con los entornos web.

Una cosa que debe quedar clara antes de seguir es que una actividad NO es una tarea, sino que una tarea se compone de actividades. Por otra parte, una actividad tampoco es un proceso, a pesar de las analogías que puedan existir entre los estados de una actividad y de un proceso al uso. Aquí no hablaremos de tareas ni de procesos, sino de actividades.

En esta guía de aprendizaje se explica qué estados atraviesa una actividad en Android y qué transiciones existen de una a otra. Lo que a continuación expondré no es más que una traducción al español sintetizada.

Estados

Estos son los estados de una actividad Android:

Estados de una actividad Android

Estados de una actividad Android

Toda actividad hereda de Activity y antes que eso de Context. Por ello, toda actividad debe sobreescribir el método onCreate(), que se ejecuta nada más iniciarse la actividad. Además, es éste el único método que estaremos obligados a implementar de todo el flujo de la actividad; los demás son opcionales. Después, la actividad se inicia, y se ejecuta el código que haya en onStart(). Estos dos estados son transicionales y se ejecutan rápidamente. A continuación, se ejecuta el código que haya en onResume().

A partir de este momento, la actividad cambia entre los estados Resumed, Paused (cuando pierde el foco en el terminal del usuario, normalmente porque aparece un diálogo) y Stopped (cuando pasa a background porque se inicia otra actividad, posiblemente de otra aplicación diferente). Finalmente, una actividad pasa a estado Destroyed cuando finaliza, bien porque dicha actividad ha terminado automáticamente llamando a finish() o bien porque el usuario la cierra, puslando sobre el botón de ir hacia atrás.

Cabe destacar que antes de pasar a Stopped, siempre se pasa antes por Paused, de manera que antes de ejecutar onStopped() se ejecutará onPaused().

Los únicos estados estables en el tiempo son, por tanto, Resumed, Paused y Stopped. Cuando una actividad se inicia rápidamente se ejecuta el código de crear, iniciar y continuar (en inglés, resume). Finalmente, no es necesario sobreescribir onDestroy() a menos que haya que liberar recursos creados en las etapas de creación o inicialización.

A partir de ahí la actividad está plenamente operativa. Es importante tener todo esto en cuenta a la hora de diseñar nuestras actividades y saber cuál será el flujo de ejecución de las mismas.


Referencias:

Android training guide

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s