Your SlideShare is downloading. ×
Tema 4 5_2_receptores_difusion
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Tema 4 5_2_receptores_difusion

410

Published on

Android. Receptores de difusión

Android. Receptores de difusión

Published in: Sports
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
410
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
33
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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. LeyendaTeoríaEjercicio práctico en el ordenadorAmpliación de conocimientosLectura / Vídeo / PodcastPráctica libre / Experimentación Acceso a Datos 2
  • 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. 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. 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. 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. 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. 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. 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. AndroidManifest.xml Acceso a Datos 10
  • 11. BootReceiver Acceso a Datos 11
  • 12. BootReceiver v2● Puede ser incómodo que siempre se nos lance el servicio... añadimos una preferencia Acceso a Datos 12
  • 13. Preferencias (I)xml/prefs.xml Acceso a Datos 13
  • 14. Preferencias (II)● Las opciones de ListPreference las añadimos en values/arrays.xml Acceso a Datos 14
  • 15. NetworkReceiver Acceso a Datos 15
  • 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. TimelineActivity (I) Defino un nuevo evento (personalizado) para la aplicación: NEW_STATUS Acceso a Datos 17
  • 18. TimelineActivity (II) En vez de registrar el receptor en el manifiesto, lo hago de forma programática (registerReceiver) Acceso a Datos 18
  • 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. UpdaterService (I) Acceso a Datos 20
  • 21. UpdaterService (II) Acceso a Datos 21
  • 22. UpdaterService (III) Acceso a Datos 22
  • 23. Lo que llevamos hecho... Acceso a Datos 23
  • 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. ¿Preguntas? Acceso a Datos 25

×