Análisis y Diseño      de SoftwareTema 4.5.2Receptores de difusión      Carlos A. Iglesias <cif@gsi.dit.upm.es>     Depart...
LeyendaTeoríaEjercicio práctico en el ordenadorAmpliación de conocimientosLectura / Vídeo / PodcastPráctica libre / Experi...
Temario●   4.1 Introducción a Android [Gar10, cap1-2 ]●   4.2 Desarrollo con Android [Gar10, cap3-5]●   4.3 Interfaces de ...
Bibliografía●   Libro de texto:    – [Gar10] Learning Android, Marko Gargenta,        OReilly, 2010, Cap 10-12. Disponible...
Objetivos●    Aprender a utilizar componentes de    Android más elaborados, como los    receptores de difusión●   Entender...
Motivación●   El usuario tiene que lanzar el servicio.    –    Nos gustaría que el sistema lanzara el        servicio cuan...
Receptores de difusión           ●   Sigue patrón               publish/subscribe           ●    El subscriptor tiene     ...
BroadCast Receivers●   Se subscriben a un evento (Intención) en    AndroidManifest.xml●Tiene    un método onReceive() que ...
Broadcast Receivers en               Yamba●   En nuestro caso:    –   BootReceiver: se subscribe al evento de        reini...
AndroidManifest.xml           Acceso a Datos   10
BootReceiver        Acceso a Datos   11
BootReceiver v2●    Puede ser incómodo que siempre se nos    lance el servicio... añadimos una    preferencia             ...
Preferencias (I)xml/prefs.xml                          Acceso a Datos   13
Preferencias (II)●   Las opciones de ListPreference las    añadimos en values/arrays.xml                           Acceso ...
NetworkReceiver         Acceso a Datos   15
Actualizar pantalla...●    Ahora mismo si estamos viendo el    TimelineActivity y llegan nuevos mensajes de    estado del ...
TimelineActivity (I)                    Defino un nuevo evento                    (personalizado) para la                 ...
TimelineActivity (II)                        En vez de registrar el                            receptor en el             ...
TimelineActivity (III)                            Refrescamos el                          objeto Cursor y el              ...
UpdaterService (I)           Acceso a Datos   20
UpdaterService (II)           Acceso a Datos   21
UpdaterService (III)            Acceso a Datos   22
Lo que llevamos hecho...              Acceso a Datos   23
Resumen●   En este tema hemos aprendido a utilizar    un componente elaborado, los    subscriptores de difusión●   Hemos v...
¿Preguntas?       Acceso a Datos   25
Upcoming SlideShare
Loading in...5
×

Tema 4 5_2_receptores_difusion

423

Published on

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
423
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
34
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×