2011-02-26 22 views
7

Estoy escribiendo código para mostrar notificaciones al usuario en momentos específicos (al igual que la aplicación Google Calendar).Mostrar la notificación de barra de estado desde un BroadcastReceiver

que, por tanto, crear:

  • un BroadcastReceiver que escucha a BOOT_COMPLETED, tras la recepción se configura una alarma en un minuto con el fin de no sobrecargar el dispositivo cuando todavía se está cargando cosas;
  • un BroadcastReceiver que escucha las alarmas: el primer conjunto un minuto después de BOOT_COMPLETED, y el siguiente en la próxima cita (como en Google Calendar)

Así que, por lo general:

  1. BOOT_COMPLETED => iniciar alarma con un retraso de un minuto
  2. Un minuto después => el receptor configura otra alarma para la siguiente cita
  3. Varios minutos/horas/días después, la alarma se activa it off => el receptor muestra una notificación de la barra de estado

Lo que significa que las notificaciones de la barra de estado se ponen en marcha desde el BroadcastReceiver.

He leído en el documento que deben ser lanzados desde actividades o servicios: https://developer.android.com/guide/topics/ui/notifiers/notifications.html#Basics

que estoy pidiendo aquí las mejores prácticas. ¿Debo crear un Service que será lanzado por el BroadcastReceiver, y cuyo único propósito será iniciar la notificación de la barra de estado? Mi código está funcionando, solo quiero crear código limpio como lo sugiere Google.

+0

buena pregunta, esto me está haciendo considerar el rediseño de mi configuración actual que utiliza el esquema 'Alarm'->' BroadcastReceiver'-> 'Notification' que describió: - \ –

Respuesta

1

Puede agregar Notification de BroadcastReceiver, AFAIK. Eso debería ser bastante rápido. Si StrictMode se queja, entonces puede valer la pena preocuparse; de ​​lo contrario, debería estar bien.

+0

Derecha. Sin embargo, para estar seguros, la alarma que muestra una notificación en el acto lanzará el servicio, que mostrará la notificación. Esto también será a prueba de futuro en caso de que agregue código caro antes de la notificación. –

Cuestiones relacionadas