Описание тега alarmmanager
AlarmManager
класс обеспечивает доступ к системным службам сигнализации. Это позволяет вам запланировать запуск вашего приложения в какой-то момент в будущем. Когда срабатывает будильник,Intent
то, что было зарегистрировано для него, транслируется системой, автоматически запуская целевое приложение, если оно еще не запущено. Зарегистрированные сигналы тревоги сохраняются, пока устройство находится в спящем режиме (и может дополнительно разбудить устройство, если они сработают в течение этого времени), но будут сброшены, если оно будет выключено и перезагружено.
В AlarmManager
удерживает блокировку пробуждения ЦП до тех пор, пока onReceive()
метод выполняется. Это гарантирует, что телефон не перейдет в спящий режим, пока вы не закончите обработку трансляции. однаждыonReceive()
возвращается, AlarmManager
снимает эту блокировку слежения. Это означает, что в некоторых случаях телефон переходит в спящий режим, как только выonReceive()
метод завершается. Если ваш будильник звонилContext.startService()
, возможно, телефон перейдет в спящий режим до запуска запрошенной службы. Чтобы предотвратить это, вашBroadcastReceiver
а также Service
потребуется реализовать отдельную политику блокировки пробуждения, чтобы телефон продолжал работать, пока служба не станет доступной.