Ciclo de vida de una Activity (Lifecycle)

In: Android| Tutoriales

29 Jul 2009

Vamos a hablar del ciclo de vida de las Activity y de cómo influyen en la ejecución de nuestra aplicación. A primera vista no parece algo muy complicado aunque es muy necesario comprender bien éste ciclo para poder aprovecharnos de las posibilidades que nos ofrece. [tweetmeme]

Toda Activity sigue un ciclo, el paso entre ésos estados se pueden deber a la ejecución de código o a la intervención del usuario. Como veremos a continuación, hay estados destinados a realizar algunas acciones y algunas que, simplemente, no usaremos nunca. Cabe decir que, pese a que no introduzcamos nada de código en esos estados, la Activity sigue pasando por ellos.

activity_lifecycle

Una Activity es una única y focalizada cosa que el usuario puede hacer. Casi todas las Activity interactuan con el usuario asi que ellas mismas se encargan de crear una ventana para colocar la UI. Android maneja las Activity creadas como una pila, cuando una nueva Activity se crea, se coloca en lo más alto de la pila y se convierte en la Activity en curso – la Activity anterior permanece justo debajo y no volverá al frente hasta que la nueva Activity acabe.

Veamos cada estado más detalladamente:

Estado Descripción Abortable? Siguiente
onCreate() Se ejecuta cuando se crea la Activity por primera vez. Aquí es donde se deberían crear views, linkar datos a listas, en definitiva el proceso de inicialización de nuestra aplicación. No onStart()
onRestart() Se ejecuta cuando la aplicación se ha cerrado y se va a ejecutar nuevamente. No onStart()
onStart() Se ejecuta cuando al aplicación aparece 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(). No onResume() o onStop()
onResume() Se ejecuta cuando la Activity interactua con el usuario. En éste punto la Activity está en la cima de la pila. No 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. Si 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() is la Activity vuelve a interaccionar con el usuario o por onDestroy() si la Activity será destruida. Si onRestart() o
onDestroy()
onDestroy() Última llamada antes de detruir 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étido isFinishing(). Si nada

Para más información: Android Developers [tweetmeme]

Comparte:
  • Facebook
  • Bitacoras.com
  • Meneame
  • Wikio IT
  • Digg
  • del.icio.us
  • FriendFeed
  • HackerNews
  • Technorati

Entradas relacionadas:

  1. Diseñando la aplicación, uso de TabHost en Android
  2. Creando la primera aplicación con Android
  3. Primeros pasos con Android
  4. Tratamiento de ficheros XML con Android
  5. Cómo instalar el teclado del HTC Hero en el HTC Magic

1 Comentario to Ciclo de vida de una Activity (Lifecycle)

Avatar

Cómo añadir iconos a un ListView en Android | mobile development

Agosto 3rd, 2009 at 11:45 PM

[...] Éste proceso se debe hacer dentro del método onCreate de la aplicación principal, de ésta manera sólo lo haremos una vez y estará disponible durante todo el LifeCycle. [...]

Comment Form

De qué va esto?

La comunidad de desarrollo sobre Android e iPhone en castellano es algo limitada, así que hay que sumar, desde aqui intentaré aportar mi granito de arena y ayudar a quien lo necesite. No dudes en preguntar cualquier duda, entre todos los solucionaremos.

Tutoriales

Photostream

tuto3-1tuto2-1tuto1-8tuto1-7