Отображение уведомления в строке состояния от BroadcastReceiver - PullRequest
7 голосов
/ 26 февраля 2011

Я пишу код для отображения уведомлений пользователю в определенное время (так же, как приложение Google Calendar).

Я, следовательно, создал:

  • a BroadcastReceiver, чтопрослушивает BOOT_COMPLETED, при получении он устанавливает сигнал тревоги за одну минуту, чтобы не перегружать устройство, когда оно все еще загружает данные;
  • a BroadcastReceiver, который прослушивает сигналы тревоги: первый устанавливается через минуту послеBOOT_COMPLETED и следующее на следующей встрече (как в Календаре Google)

Так, обычно:

  1. BOOT_COMPLETED => запуск тревоги с одной минутойзадержка
  2. Одна минута спустя => Приемник устанавливает другую тревогу для следующей встречи
  3. Через несколько минут / часов / дней тревога гаснет => Приемник отображает уведомление в строке состояния

Это означает, что уведомления в строке состояния запускаются из BroadcastReceiver.

Я прочитал в документе, что они должны запускаться из операций или служб: https://developer.android.com/guide/topics/ui/notifiers/notifications.html#Basics

Я прошу о лучшей практикеВот.Должен ли я создать Service, который будет запущен BroadcastReceiver, и какой единственной целью будет запуск уведомления в строке состояния?Мой код работает, я просто хочу создать чистый код, предложенный Google.

1 Ответ

1 голос
/ 26 февраля 2011

Вы можете добавить Notification из BroadcastReceiver, AFAIK. Это должно быть довольно быстро. Если StrictMode жалуется на это, возможно, стоит побеспокоиться об этом, иначе все будет в порядке.

...