Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Tema 4 5_2_receptores_difusion

568 views

Published on

Android. Receptores de difusión

Published in: Sports
  • Be the first to comment

  • Be the first to like this

Tema 4 5_2_receptores_difusion

  1. 1. Análisis y Diseño de SoftwareTema 4.5.2Receptores de difusión Carlos A. Iglesias <cif@gsi.dit.upm.es> Departamento de Ingeniería de Sistemas Telemáticos http://moodle.dit.upm.es
  2. 2. LeyendaTeoríaEjercicio práctico en el ordenadorAmpliación de conocimientosLectura / Vídeo / PodcastPráctica libre / Experimentación Acceso a Datos 2
  3. 3. Temario● 4.1 Introducción a Android [Gar10, cap1-2 ]● 4.2 Desarrollo con Android [Gar10, cap3-5]● 4.3 Interfaces de Usuario [Gar10, cap6]● 4.4 Intenciones y Servicios [Gar10, cap7-8]● 4.5 Acceso a Datos [Gar10, cap9-12] – 4.5.1 Base de datos [Gar10, cap9] – 4.5.2 Receptores de Difusión [Gar10, cap10] Acceso a Datos 3
  4. 4. Bibliografía● Libro de texto: – [Gar10] Learning Android, Marko Gargenta, OReilly, 2010, Cap 10-12. Disponible en http://ofps.oreilly.com/titles/9781449390501/● Android Developers – http://developer.android.com/reference/android/app/Service.html – https://developer.android.com/reference/android/content/BroadcastReceiver.html – http://developer.android.com/guide/topics/providers/content-providers.html – Acceso a Datos 4
  5. 5. Objetivos● Aprender a utilizar componentes de Android más elaborados, como los receptores de difusión● Entender el patrón de diseño publicador- subscriptor, y la comunicación asíncrona entre componentes Acceso a Datos 5
  6. 6. Motivación● El usuario tiene que lanzar el servicio. – Nos gustaría que el sistema lanzara el servicio cuando encendemos el teléfono● También el servicio se conecta periódicamente, incluso si no tenemos conexión de red – Nos gustaría que sólo nos conectáramos para actualizar cuando hay conexión de red Acceso a Datos 6
  7. 7. Receptores de difusión ● Sigue patrón publish/subscribe ● El subscriptor tiene un método que se ejecuta cuando recibe el evento Desarrollo con Android 7
  8. 8. BroadCast Receivers● Se subscriben a un evento (Intención) en AndroidManifest.xml●Tiene un método onReceive() que es invocado cada vez que surge dicho evento● Podemos tener que declarar permisos para que el usuario autorice que la aplicación sea notificada de estos eventos Acceso a Datos 8
  9. 9. Broadcast Receivers en Yamba● En nuestro caso: – BootReceiver: se subscribe al evento de reinicio del teléfono – NetworkReceiver: se subscribe al evento de conexión / desconexión de red Acceso a Datos 9
  10. 10. AndroidManifest.xml Acceso a Datos 10
  11. 11. BootReceiver Acceso a Datos 11
  12. 12. BootReceiver v2● Puede ser incómodo que siempre se nos lance el servicio... añadimos una preferencia Acceso a Datos 12
  13. 13. Preferencias (I)xml/prefs.xml Acceso a Datos 13
  14. 14. Preferencias (II)● Las opciones de ListPreference las añadimos en values/arrays.xml Acceso a Datos 14
  15. 15. NetworkReceiver Acceso a Datos 15
  16. 16. Actualizar pantalla...● Ahora mismo si estamos viendo el TimelineActivity y llegan nuevos mensajes de estado del servicio UpdateService, no se refresca la pantalla● Vamos a hacer que UpdateService notifique a TimelineActivity cuando llegan nuevos mensajes de estado – Definimos una clase interna TimelineReceiver en TimelineActivity que se subscribe a eventos de UpdateService Acceso a Datos 16
  17. 17. TimelineActivity (I) Defino un nuevo evento (personalizado) para la aplicación: NEW_STATUS Acceso a Datos 17
  18. 18. TimelineActivity (II) En vez de registrar el receptor en el manifiesto, lo hago de forma programática (registerReceiver) Acceso a Datos 18
  19. 19. TimelineActivity (III) Refrescamos el objeto Cursor y el objeto Adaptador para que re- ejecuten la consulta cuando hay un nuevo mensaje de estado Acceso a Datos 19
  20. 20. UpdaterService (I) Acceso a Datos 20
  21. 21. UpdaterService (II) Acceso a Datos 21
  22. 22. UpdaterService (III) Acceso a Datos 22
  23. 23. Lo que llevamos hecho... Acceso a Datos 23
  24. 24. Resumen● En este tema hemos aprendido a utilizar un componente elaborado, los subscriptores de difusión● Hemos visto eventos del sistema y eventos definidos por la aplicación● También hemos visto cómo registrar componentes de forma declarativa y de forma programática Acceso a Datos 24
  25. 25. ¿Preguntas? Acceso a Datos 25

×