Какое поведение следует ожидать от установки будильника типа AlarmManager.RTC? - PullRequest
0 голосов
/ 11 марта 2012

Я пытаюсь настроить периоды обновления моего виджета с помощью AlarmManager. Теперь я получил эту работу, реализовав метод onReceive() в моем AppWidgetProvider, который, в свою очередь, вызывает метод onUpdate() AppWidgetProvider, когда он получает трансляцию моего сигнала тревоги. Кажется, это работает, хотя я все еще пытаюсь понять некоторые сценарии.

Прошлой ночью я настроил будильник так, чтобы он обновлялся каждый час, чтобы телефон не просыпался. Как вы можете видеть из вывода adb shell dumpsys alarm ниже, я успешно зарегистрировал сигнал тревоги RTC для выполнения каждый час:

RTC #1: Alarm{40b354b0 type 1 com.my.app}
type=1 when=+59m40s6ms repeatInterval=3600000 count=1
operation=PendingIntent{40c11e70: PendingIntentRecord{40e2b290 com.my.app broadcastIntent}}

В любом случае, я отключил телефон, выключил экран и лег спать. В моем методе onReceive() я выводю сообщения журнала в файл, чтобы убедиться, что я фиксирую происходящее. Этим утром я взглянул на журнал и обнаружил, что мой метод onRecieve () срабатывает каждый час без сбоев. Это никогда не спало через единственный сигнал тревоги.

Почему это так? Хотя я предполагаю, что в моем телефоне пробуждаются возможные другие процессы или сигналы тревоги, это кажется подозрительным. Может ли кто-нибудь предложить какую-либо информацию или совет?

Наконец, кто-нибудь знает, что означает count=1 в моем выводе выше?

1 Ответ

0 голосов
/ 11 марта 2012

На этот вопрос ответили

Разрешение телефона спать во время использования RTC alarm на Android

и является распространенной проблемой.

Я не знаю, что означает число = 1.

...