tema 4.4 actividades

Post on 23-Jun-2015

162 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Análisis y Diseño de Software

Departamento de Ingeniería de Sistemas Telemáticoshttp://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?

top related