SlideShare una empresa de Scribd logo
Análisis y Diseño
de Software
Departamento de Ingeniería de Sistemas Telemáticos
http://moodle.dit.upm.es
Carlos A. Iglesias <cif@gsi.dit.upm.es>
1.0 19/04/2013
Actividades
Actividades 2
Temario
● 4.1 Introducción a Android
● 4.2 Introducción Desarrollo con Android
● 4.3 Ejemplo Desarrollo y Depuración
● 4.4 Actividades
● 4.5 Interfaces de Usuario
● 4.6 Intenciones
● 4.7 Acceso a Datos
● 4.8 Preferencias
● 4.9 Hebras e internacionalización
Desarrollo con Android 3
Teoría
Ejercicio práctico en el ordenador
Ampliación de conocimientos
Lectura / Vídeo / Podcast
Práctica libre / Experimentación
Leyenda
Actividades 4
Bibliografía
● Android Developers
– http://developer.android.com/training/basics/activity-lifecycle
/index.html
– http://docs.huihoo.com/android/3.0/guide/topics/fundamental
s/activities.html
Actividades 5
Objetivos
● Entender qué es una Actividad
● Entender el ciclo de vida de una actividad
Actividades 6
Actividad
● En Android no hay una clase con un main
como en Java
● Las actividades son el componente
principal en Android
● Una aplicación se compone de un conjunto
de actividades (pantallas), de las que una
es la principal (MAIN) que es la que
comienza
Actividades 7
Pila de Actividades
Actividades 8
Pila de Actividades
● A medida que el usuario navega, las
actividades cambian de estado: se inician,
son visibles, se paran, se terminan, … el
sistema Android notifica a la actividad
mediante métodos 'callback' (onCreate, ...)
Actividades 9
Estados de una actividad
● Una actividad tiene 3 estados básicos:
– Resumed (reanudada): actividad en primer
plano con la que interactúa el usuario
– Paused (pausada): actividad semi-visible en
segundo plano, parcialmente tapada por otra
actividad que está en primer plano que no
ocupa toda la pantalla; la actividad pausada no
permite interacción ni ejecuta código
– Stopped (parada), actividad de fondo,
completamente oculta y no ejecuta código
Actividades 10
Pirámide de estados
● Con cada llamada a un método de callback
cambiamos de estado
● Hay estados transitorios: Created, Started
Actividades 11
Ejemplo ActivityLifecycle (I)
Debería ser stopped,
es una optimización de
Android
Actividades 12
Ejemplo ActivityLifecycle (II)
Actividades 13
Tiempo de vida de la
actividad (I)
Actividad visible
(segundo plano)
Actividad visible y activa
(primer plano)
Actividad viva
Actividades 14
Tiempo de vida de la
actividad (II)
●Tiempo de vida completo (actividad viva): entre
onCreate() y onDestroy()
– Se crean los recursos y se liberan
●Tiempo de vida visible: entre onStart() y onStop()
– Es visible pero puede no estar en primer plano
– Pueden llamarse múltiples veces a onStart() / onStop()
– Estos métodos deben mantener los recursos que se necesitan para
visualizar la interfaz
●Tiempo de vida activa: entre onResume() y onPause()
– Es visible y está en primer plano, se puede interactuar con ella
– Puede llamarse muchas veces a onPause() / onResume()
Actividades 15
Ejemplo Actividad
Actividades 16
Actividad en Manifest.xml (I)
● En el fichero Manifest.xml deben estar
declaradas las actividades de la aplicación
● La actividad inicial debe tener un
intent-filter con acción MAIN y categoría
LAUNCHER
Actividades 17
Actividad en Manifest.xml (II)
Nombre clase
de la actividad,
continúa la
propiedad
package
Indica que es la
actividad inicial
que se lanza
Actividades 18
Crear Actividad
● El sistema llama en secuencia a
onCreate(), onStart(), onResume()
Actividades 19
onCreate()
● onCreate(Bundle savedInstanceState)
● Es el único método que siempre debemos implementarlo
● Llamado cuando se inicia la actividad
● A continuación el sistema llama a onStart() y onResume()
●Qué debe hacer
– Llamar a super.onCreate(savedInstanceState) para recuperar estado
anterior de la actividad si fue destruida
– Inicializar los componentes de la actividad
– Llamar a setContentView() para definir el layout de la actividad
Actividades 20
onStart()
● Se ejecuta tras onCreate() justo cuando la
actividad pasa a ser visible para el usuario
● Le sigue onResume() si la actividad pasa a
primer plano o de onStop() si se oculta
● Qué debe hacer
– Actualiza recursos de interfaz que va a ser
visible
Actividades 21
onResume()
● La actividad pasa a primer plano
● Siempre le sigue onPause()
● Qué debe hacer
– Si se pausaron hebras, deben volverse a
ejecutar
– Si hacemos algo que lleva un cierto tiempo
Actividades 22
Pausar y reanudar una
Actividad
● Otra actividad pasa a primer plano, pero la
actividad permanece parcialmente visible
Actividades 23
onPause()
● El sistema va a iniciar otra actividad
● Qué debe hacer
– Guardar cambios de estado para hacerlos persistentes sólo si
el usuario espera que se autoguarden
– Parar animaciones u otras acciones que consuman CPU
– Liberar recursos que puedan afectar al uso de batería (GPS,
cámara, ...)
● Debe ser un método rápido para que podamos pasar
rápido a la siguiente actividad (o llamada telefónica o...)
Actividades 24
onResume()
● Llamado si el usuario reanuda la actividad
que está en pausa
● Qué debe hacer
– Inicializar los componentes que se liberaron en
onPause()
– Reiniciar animaciones, etc. que se pararon en
onPause()
Actividades 25
Parar y reiniciar una
Actividad
● La actividad puede ser parada o reiniciada
cuando..
– El usuario selecciona otra aplicación en
aplicaciones recientes
– El usuario pulsa “Back” para regresar a la
actividad anterior
– El usuario recibe una llamada telefónica
Actividades 26
Parar y reiniciar una
actividad
● Métodos para parar/reiniciar: onStop() /
onRestart() / onStart() / onResume()
Actividades 27
onStop()
● La actividad es parada y ya no es visible
● El sistema puede llamar a onDestroy() si
necesita memoria
● Es llamado tras un onPause()
● Qué debe hacer
– Realizar operaciones intensivas en CPU para
guardar el estado, como escribir en base de
datos
Actividades 28
onRestart()
● Llamado cuando una actividad parada se
reinicia, y luego llama a onStart()
● Poco habitual reescribirlo
● Qué debe hacer
– Reiniciar recursos que fueron destruidos en
onStop()
Actividades 29
onDestroy()
●Llamado para liberar el objeto de la actividad
●Normalmente habremos liberado todo en onStop() y no
tendremos que usarlo
●Puede destruirla el sistema o nosotros invocando finish()
●Si se cambia la configuración de la Actividad (orientación
pantalla, teclado, idioma, …) la actividad se destruye y reinicia
●Qué debe hacer:
– Liberar recursos que no hemos liberado antes (p.ej. Hebras), pero
improbable
– Guardar cambios en configuración (isConfigurationchange()) para
reiniciar con esos cambios
Actividades 30
Estados 'matables' - killable
● Las actividades que están en un estado
'matable' pueden ser terminadas por el
sistema en cualquier momento
● Estados matables: onPause(), onStop(),
onDestroy()
● Sólo se garantiza que se va a llamar a
onPause() antes de matar la actividad
Actividades 31
Recrear una actividad
● Cuando el sistema destruye una actividad, intenta
recrearla en el estado a través de un objeto Bundle
(par-valor)
– Ej. el usuario da 'Back' hasta llegar a ella o el usuario gira
el dispositivo
● El sistema reconstruye la interfaz (objetos View) sin
que hagamos nada
● Debemos guardar datos adicionales de la interfaz
usando el método onSaveInstanceState(), el resto de
datos se guardan en onPause()
Actividades 32
Guardar estado
● Antes de onStop(), llama a
onSaveInstanceState() y tras onCreate()
llama a onRestoreInstanceState()
Actividades 33
Ejemplo restore en
onCreate()
Actividades 34
Ejemplo restore en onStart()
Actividades 35
Resumen
● Las actividades tienen un ciclo de vida que
permite reactivarlas, reiniciarlas, pausarlas,
pararlas, …
● Para gestionar los cambios, usamos
métodos de callBack
● Siempre tenemos que implementar
onCreate() y fijar el layout de la actividad
Actividades 36
¿Preguntas?

Más contenido relacionado

Similar a Tema 4.4 Actividades

capitulo5-2011-110612183514-phpapp01
capitulo5-2011-110612183514-phpapp01capitulo5-2011-110612183514-phpapp01
capitulo5-2011-110612183514-phpapp01ULEAM
 
Tema 4 4_1_intenciones_servicios
Tema 4 4_1_intenciones_serviciosTema 4 4_1_intenciones_servicios
Tema 4 4_1_intenciones_servicios
Carlos A. Iglesias
 
Ciclo de vida de una app Android
Ciclo de vida de una app AndroidCiclo de vida de una app Android
Ciclo de vida de una app Android
Irving Emmanuel Gonzalez
 
Introducción a Android
Introducción a AndroidIntroducción a Android
Introducción a Android
Canío CaminoSolo
 
Tema 4.2.2 Desarrollo con Android. El Framework de Android.
Tema 4.2.2 Desarrollo con Android. El Framework de Android.Tema 4.2.2 Desarrollo con Android. El Framework de Android.
Tema 4.2.2 Desarrollo con Android. El Framework de Android.
Carlos A. Iglesias
 
Creación de Procesos en Android
Creación de Procesos en AndroidCreación de Procesos en Android
Creación de Procesos en Android
Rafa González Jiménez
 
Sistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesosSistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesos
ChiNo Sosa Erazo
 
Tema 4 3_3_interfaces_de_usuario
Tema 4 3_3_interfaces_de_usuarioTema 4 3_3_interfaces_de_usuario
Tema 4 3_3_interfaces_de_usuario
Carlos A. Iglesias
 
Portafolio dionisio 2 dionisio
Portafolio dionisio 2 dionisioPortafolio dionisio 2 dionisio
Portafolio dionisio 2 dionisiolaloblog
 
Portafolio dionisio 2
Portafolio dionisio 2Portafolio dionisio 2
Portafolio dionisio 2
eduardoamaya30
 
Palm OS - SO multitarea.
Palm OS - SO multitarea.Palm OS - SO multitarea.
Palm OS - SO multitarea.
Joseph León Lau
 
Administración y comandos básicos. Arquitectura del Computador
Administración y comandos básicos. Arquitectura del ComputadorAdministración y comandos básicos. Arquitectura del Computador
Administración y comandos básicos. Arquitectura del Computador
FernandoPadilla78
 
Memoria montaje ordenador
Memoria montaje ordenadorMemoria montaje ordenador
Memoria montaje ordenador
naroaurien
 
Plasma active three akademy es-2013_bilbo
Plasma active three akademy es-2013_bilboPlasma active three akademy es-2013_bilbo
Plasma active three akademy es-2013_bilbo
kdeespana
 
Plasma active three akademy es-2013_bilbo
Plasma active three akademy es-2013_bilboPlasma active three akademy es-2013_bilbo
Plasma active three akademy es-2013_bilboBaltasar Ortega
 
HackDay Java 9 Spanish version
HackDay Java 9 Spanish versionHackDay Java 9 Spanish version
HackDay Java 9 Spanish version
HillmerC
 
Capitulo5 2011
Capitulo5 2011Capitulo5 2011

Similar a Tema 4.4 Actividades (20)

capitulo5-2011-110612183514-phpapp01
capitulo5-2011-110612183514-phpapp01capitulo5-2011-110612183514-phpapp01
capitulo5-2011-110612183514-phpapp01
 
Tema 4.1 Introduccion Android
Tema 4.1 Introduccion AndroidTema 4.1 Introduccion Android
Tema 4.1 Introduccion Android
 
Tema 4 4_1_intenciones_servicios
Tema 4 4_1_intenciones_serviciosTema 4 4_1_intenciones_servicios
Tema 4 4_1_intenciones_servicios
 
Gestion de procesos Android
Gestion de procesos AndroidGestion de procesos Android
Gestion de procesos Android
 
Ciclo de vida de una app Android
Ciclo de vida de una app AndroidCiclo de vida de una app Android
Ciclo de vida de una app Android
 
Introducción a Android
Introducción a AndroidIntroducción a Android
Introducción a Android
 
Tema 4.2.2 Desarrollo con Android. El Framework de Android.
Tema 4.2.2 Desarrollo con Android. El Framework de Android.Tema 4.2.2 Desarrollo con Android. El Framework de Android.
Tema 4.2.2 Desarrollo con Android. El Framework de Android.
 
Creación de Procesos en Android
Creación de Procesos en AndroidCreación de Procesos en Android
Creación de Procesos en Android
 
Sistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesosSistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesos
 
Tema 4 3_3_interfaces_de_usuario
Tema 4 3_3_interfaces_de_usuarioTema 4 3_3_interfaces_de_usuario
Tema 4 3_3_interfaces_de_usuario
 
Portafolio dionisio 2 dionisio
Portafolio dionisio 2 dionisioPortafolio dionisio 2 dionisio
Portafolio dionisio 2 dionisio
 
Portafolio dionisio 2
Portafolio dionisio 2Portafolio dionisio 2
Portafolio dionisio 2
 
Palm OS - SO multitarea.
Palm OS - SO multitarea.Palm OS - SO multitarea.
Palm OS - SO multitarea.
 
Administración y comandos básicos. Arquitectura del Computador
Administración y comandos básicos. Arquitectura del ComputadorAdministración y comandos básicos. Arquitectura del Computador
Administración y comandos básicos. Arquitectura del Computador
 
Memoria montaje ordenador
Memoria montaje ordenadorMemoria montaje ordenador
Memoria montaje ordenador
 
Plasma active three akademy es-2013_bilbo
Plasma active three akademy es-2013_bilboPlasma active three akademy es-2013_bilbo
Plasma active three akademy es-2013_bilbo
 
Plasma active three akademy es-2013_bilbo
Plasma active three akademy es-2013_bilboPlasma active three akademy es-2013_bilbo
Plasma active three akademy es-2013_bilbo
 
HackDay Java 9 Spanish version
HackDay Java 9 Spanish versionHackDay Java 9 Spanish version
HackDay Java 9 Spanish version
 
Proceso
ProcesoProceso
Proceso
 
Capitulo5 2011
Capitulo5 2011Capitulo5 2011
Capitulo5 2011
 

Más de Carlos A. Iglesias

GSI Research Group Presentation
GSI Research Group PresentationGSI Research Group Presentation
GSI Research Group Presentation
Carlos A. Iglesias
 
Entorno PHP
Entorno PHPEntorno PHP
Entorno PHP
Carlos A. Iglesias
 
Bootstrap 3.
Bootstrap 3.Bootstrap 3.
Bootstrap 3.
Carlos A. Iglesias
 
Introducción CSS
Introducción CSSIntroducción CSS
Introducción CSS
Carlos A. Iglesias
 
Introducción HTML
Introducción HTMLIntroducción HTML
Introducción HTML
Carlos A. Iglesias
 
Presentación TEWC
Presentación TEWCPresentación TEWC
Presentación TEWC
Carlos A. Iglesias
 
UPM GSI Presentation
UPM GSI PresentationUPM GSI Presentation
UPM GSI Presentation
Carlos A. Iglesias
 
Introducción Análisis y Diseño
Introducción Análisis y DiseñoIntroducción Análisis y Diseño
Introducción Análisis y Diseño
Carlos A. Iglesias
 
Introducción TEWC
Introducción TEWCIntroducción TEWC
Introducción TEWC
Carlos A. Iglesias
 
Tema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacionTema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacionCarlos A. Iglesias
 
Gestion de Ideas
Gestion  de IdeasGestion  de Ideas
Gestion de Ideas
Carlos A. Iglesias
 
Tema 2 Diccionarios. Tablas Hash.
Tema 2 Diccionarios. Tablas Hash.Tema 2 Diccionarios. Tablas Hash.
Tema 2 Diccionarios. Tablas Hash.
Carlos A. Iglesias
 

Más de Carlos A. Iglesias (20)

GSI Research Group Presentation
GSI Research Group PresentationGSI Research Group Presentation
GSI Research Group Presentation
 
Entorno PHP
Entorno PHPEntorno PHP
Entorno PHP
 
Bootstrap 3.
Bootstrap 3.Bootstrap 3.
Bootstrap 3.
 
Introducción CSS
Introducción CSSIntroducción CSS
Introducción CSS
 
Introducción HTML
Introducción HTMLIntroducción HTML
Introducción HTML
 
Presentación TEWC
Presentación TEWCPresentación TEWC
Presentación TEWC
 
UPM GSI Presentation
UPM GSI PresentationUPM GSI Presentation
UPM GSI Presentation
 
Introducción Análisis y Diseño
Introducción Análisis y DiseñoIntroducción Análisis y Diseño
Introducción Análisis y Diseño
 
PHP. Bases de Datos
PHP. Bases de DatosPHP. Bases de Datos
PHP. Bases de Datos
 
PHP. Tecnologías Web.
PHP. Tecnologías Web.PHP. Tecnologías Web.
PHP. Tecnologías Web.
 
1 intro php
1 intro php1 intro php
1 intro php
 
0 entorno php
0 entorno php0 entorno php
0 entorno php
 
Introducción TEWC
Introducción TEWCIntroducción TEWC
Introducción TEWC
 
Tema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacionTema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacion
 
Tema 4.5 interfaces
Tema 4.5 interfacesTema 4.5 interfaces
Tema 4.5 interfaces
 
Tema 4.6 Intenciones
Tema 4.6 IntencionesTema 4.6 Intenciones
Tema 4.6 Intenciones
 
Tema 4.7 Acceso a datos
Tema 4.7 Acceso a datosTema 4.7 Acceso a datos
Tema 4.7 Acceso a datos
 
Tema 4.8 Preferencias
Tema 4.8 PreferenciasTema 4.8 Preferencias
Tema 4.8 Preferencias
 
Gestion de Ideas
Gestion  de IdeasGestion  de Ideas
Gestion de Ideas
 
Tema 2 Diccionarios. Tablas Hash.
Tema 2 Diccionarios. Tablas Hash.Tema 2 Diccionarios. Tablas Hash.
Tema 2 Diccionarios. Tablas Hash.
 

Tema 4.4 Actividades

  • 1. Análisis y Diseño de Software Departamento de Ingeniería de Sistemas Telemáticos http://moodle.dit.upm.es Carlos A. Iglesias <cif@gsi.dit.upm.es> 1.0 19/04/2013 Actividades
  • 2. Actividades 2 Temario ● 4.1 Introducción a Android ● 4.2 Introducción Desarrollo con Android ● 4.3 Ejemplo Desarrollo y Depuración ● 4.4 Actividades ● 4.5 Interfaces de Usuario ● 4.6 Intenciones ● 4.7 Acceso a Datos ● 4.8 Preferencias ● 4.9 Hebras e internacionalización
  • 3. Desarrollo con Android 3 Teoría Ejercicio práctico en el ordenador Ampliación de conocimientos Lectura / Vídeo / Podcast Práctica libre / Experimentación Leyenda
  • 4. Actividades 4 Bibliografía ● Android Developers – http://developer.android.com/training/basics/activity-lifecycle /index.html – http://docs.huihoo.com/android/3.0/guide/topics/fundamental s/activities.html
  • 5. Actividades 5 Objetivos ● Entender qué es una Actividad ● Entender el ciclo de vida de una actividad
  • 6. Actividades 6 Actividad ● En Android no hay una clase con un main como en Java ● Las actividades son el componente principal en Android ● Una aplicación se compone de un conjunto de actividades (pantallas), de las que una es la principal (MAIN) que es la que comienza
  • 7. Actividades 7 Pila de Actividades
  • 8. Actividades 8 Pila de Actividades ● A medida que el usuario navega, las actividades cambian de estado: se inician, son visibles, se paran, se terminan, … el sistema Android notifica a la actividad mediante métodos 'callback' (onCreate, ...)
  • 9. Actividades 9 Estados de una actividad ● Una actividad tiene 3 estados básicos: – Resumed (reanudada): actividad en primer plano con la que interactúa el usuario – Paused (pausada): actividad semi-visible en segundo plano, parcialmente tapada por otra actividad que está en primer plano que no ocupa toda la pantalla; la actividad pausada no permite interacción ni ejecuta código – Stopped (parada), actividad de fondo, completamente oculta y no ejecuta código
  • 10. Actividades 10 Pirámide de estados ● Con cada llamada a un método de callback cambiamos de estado ● Hay estados transitorios: Created, Started
  • 11. Actividades 11 Ejemplo ActivityLifecycle (I) Debería ser stopped, es una optimización de Android
  • 13. Actividades 13 Tiempo de vida de la actividad (I) Actividad visible (segundo plano) Actividad visible y activa (primer plano) Actividad viva
  • 14. Actividades 14 Tiempo de vida de la actividad (II) ●Tiempo de vida completo (actividad viva): entre onCreate() y onDestroy() – Se crean los recursos y se liberan ●Tiempo de vida visible: entre onStart() y onStop() – Es visible pero puede no estar en primer plano – Pueden llamarse múltiples veces a onStart() / onStop() – Estos métodos deben mantener los recursos que se necesitan para visualizar la interfaz ●Tiempo de vida activa: entre onResume() y onPause() – Es visible y está en primer plano, se puede interactuar con ella – Puede llamarse muchas veces a onPause() / onResume()
  • 16. Actividades 16 Actividad en Manifest.xml (I) ● En el fichero Manifest.xml deben estar declaradas las actividades de la aplicación ● La actividad inicial debe tener un intent-filter con acción MAIN y categoría LAUNCHER
  • 17. Actividades 17 Actividad en Manifest.xml (II) Nombre clase de la actividad, continúa la propiedad package Indica que es la actividad inicial que se lanza
  • 18. Actividades 18 Crear Actividad ● El sistema llama en secuencia a onCreate(), onStart(), onResume()
  • 19. Actividades 19 onCreate() ● onCreate(Bundle savedInstanceState) ● Es el único método que siempre debemos implementarlo ● Llamado cuando se inicia la actividad ● A continuación el sistema llama a onStart() y onResume() ●Qué debe hacer – Llamar a super.onCreate(savedInstanceState) para recuperar estado anterior de la actividad si fue destruida – Inicializar los componentes de la actividad – Llamar a setContentView() para definir el layout de la actividad
  • 20. Actividades 20 onStart() ● Se ejecuta tras onCreate() justo cuando la actividad pasa a ser visible para el usuario ● Le sigue onResume() si la actividad pasa a primer plano o de onStop() si se oculta ● Qué debe hacer – Actualiza recursos de interfaz que va a ser visible
  • 21. Actividades 21 onResume() ● La actividad pasa a primer plano ● Siempre le sigue onPause() ● Qué debe hacer – Si se pausaron hebras, deben volverse a ejecutar – Si hacemos algo que lleva un cierto tiempo
  • 22. Actividades 22 Pausar y reanudar una Actividad ● Otra actividad pasa a primer plano, pero la actividad permanece parcialmente visible
  • 23. Actividades 23 onPause() ● El sistema va a iniciar otra actividad ● Qué debe hacer – Guardar cambios de estado para hacerlos persistentes sólo si el usuario espera que se autoguarden – Parar animaciones u otras acciones que consuman CPU – Liberar recursos que puedan afectar al uso de batería (GPS, cámara, ...) ● Debe ser un método rápido para que podamos pasar rápido a la siguiente actividad (o llamada telefónica o...)
  • 24. Actividades 24 onResume() ● Llamado si el usuario reanuda la actividad que está en pausa ● Qué debe hacer – Inicializar los componentes que se liberaron en onPause() – Reiniciar animaciones, etc. que se pararon en onPause()
  • 25. Actividades 25 Parar y reiniciar una Actividad ● La actividad puede ser parada o reiniciada cuando.. – El usuario selecciona otra aplicación en aplicaciones recientes – El usuario pulsa “Back” para regresar a la actividad anterior – El usuario recibe una llamada telefónica
  • 26. Actividades 26 Parar y reiniciar una actividad ● Métodos para parar/reiniciar: onStop() / onRestart() / onStart() / onResume()
  • 27. Actividades 27 onStop() ● La actividad es parada y ya no es visible ● El sistema puede llamar a onDestroy() si necesita memoria ● Es llamado tras un onPause() ● Qué debe hacer – Realizar operaciones intensivas en CPU para guardar el estado, como escribir en base de datos
  • 28. Actividades 28 onRestart() ● Llamado cuando una actividad parada se reinicia, y luego llama a onStart() ● Poco habitual reescribirlo ● Qué debe hacer – Reiniciar recursos que fueron destruidos en onStop()
  • 29. Actividades 29 onDestroy() ●Llamado para liberar el objeto de la actividad ●Normalmente habremos liberado todo en onStop() y no tendremos que usarlo ●Puede destruirla el sistema o nosotros invocando finish() ●Si se cambia la configuración de la Actividad (orientación pantalla, teclado, idioma, …) la actividad se destruye y reinicia ●Qué debe hacer: – Liberar recursos que no hemos liberado antes (p.ej. Hebras), pero improbable – Guardar cambios en configuración (isConfigurationchange()) para reiniciar con esos cambios
  • 30. Actividades 30 Estados 'matables' - killable ● Las actividades que están en un estado 'matable' pueden ser terminadas por el sistema en cualquier momento ● Estados matables: onPause(), onStop(), onDestroy() ● Sólo se garantiza que se va a llamar a onPause() antes de matar la actividad
  • 31. Actividades 31 Recrear una actividad ● Cuando el sistema destruye una actividad, intenta recrearla en el estado a través de un objeto Bundle (par-valor) – Ej. el usuario da 'Back' hasta llegar a ella o el usuario gira el dispositivo ● El sistema reconstruye la interfaz (objetos View) sin que hagamos nada ● Debemos guardar datos adicionales de la interfaz usando el método onSaveInstanceState(), el resto de datos se guardan en onPause()
  • 32. Actividades 32 Guardar estado ● Antes de onStop(), llama a onSaveInstanceState() y tras onCreate() llama a onRestoreInstanceState()
  • 35. Actividades 35 Resumen ● Las actividades tienen un ciclo de vida que permite reactivarlas, reiniciarlas, pausarlas, pararlas, … ● Para gestionar los cambios, usamos métodos de callBack ● Siempre tenemos que implementar onCreate() y fijar el layout de la actividad