Я пытаюсь настроить периоды обновления моего виджета с помощью 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
в моем выводе выше?