Imprimir

Una Activity (actividad) es un componente de la aplicación que proporciona una pantalla con la que el usuario puede interactuar para hacer una determinada acción, como llamar a un número de teléfono, hacer una foto, enviar un email o ver un mapa. Generalmente, la ventana llena completamente la pantalla, pero puede ser más pequeña que la pantalla y situarse por encima de otras ventanas.

Un aplicación suele estar formada por varias actividades unidas entre sí. Lo más habitual es que una actividad de la aplicación sea la principal (main), la cual será mostrada al usuario cuando se inicie la aplicación. Cada activity puede lanzar otra activity para realizar diferentes acciones. Cada vez que se inicia una nueva activity, la anterior es parada manteniéndola el sistema en un pila (back stack). Cuando el usuario termine con la activity actual y presione el botón de retroceso (back), la activity anterior se recupera de la pila y continúa su ejecución.

Cuando una activity es parada porque una nueva haya sido iniciada, se recibe una notificación de este cambio a través de los métodos del ciclo de vida. Hay varias llamadas a métodos del ciclo de vida que una activity puede recibir debidas a cambios en su estado (el sistema la está creando, parando, continuando o destruyendo), y cada método te proporciona la posibilidad de realizar una determinada tarea adecuada a ese cambio de estado. Por ejemplo, cuando una activity es parada, se deberían liberar los objetos de gran tamaño, como conexiones a la red o a bases de datos. Cuando la activity continúa, se deberían recuperar las recursos necesarios y continuar con las acciones que fueron interrumpidas.

Una activity puede encontrarse en uno de los siguientes estados:

Los métodos relacionados con el ciclo de vida de la activity se sobreescriben a los mismos métodos de la clase Activity, ya que la clase que se declara al crear una nueva activity es una extensión de esta clase. Dentro de la declaración de estos métodos puedes escribir el código que desees ejecutar en cada estado o cambio de estado del ciclo de vida de la activity. El esqueleto de esos métodos es el siguiente:

public class ExampleActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// La activity está siendo creada
}
@Override
protected void onStart() {
super.onStart();
// La activity va a ser visible
}
@Override
protected void onResume() {
super.onResume();
// La activity ha vuelto a ser visible
}
@Override
protected void onPause() {
super.onPause();
// Otra activity ha tomado el foco
}
@Override
protected void onStop() {
super.onStop();
// La activity ya no está visible, está parada
}
@Override
protected void onRestart() {
super.onRestart();
// La activity está volviendo a iniciarse
}
@Override
protected void onDestroy() {
super.onDestroy();
// La activity va a ser destruida.
}
}

 Puedes ver de forma gráfica cada uno de los estados por los que puede pasar la activity es el siguiente esquema obtenido de la web developer.android.com:

activity lifecycle

Ciclo de vida de los Fragment