3

Мне нужно установить повторяющийся сигнал тревоги каждые X часов, которые будут срабатывать даже в режиме доз. Тем не менее, единственные Apis, доступные в AlarmManager для Android 23, - это setExactAndAllowWhileIdle и setAndAllowWhileIdle, которые не предназначены для повторения сигналов тревоги.Android - Повторяющиеся предупреждения разрешены в режиме ожидания

Мне интересно, должен ли я перепланировать будильник каждый раз, когда он срабатывает? или есть ли лучшее решение?

ответ

3

Мне интересно, следует ли перепланировать будильник каждый раз, когда он срабатывает?

Это именно то, что вы должны делать.

Идея, стоящая за дозой, состоит в попытке предотвратить слив батареи. Повторные аварийные сигналы сбрасывают аккумулятор, поэтому встроенный способ повторить сигналы тревоги путем передачи дополнительного параметра был удален в android 6. Он все равно может быть выполнен, но, как вам было интересно, это требует, чтобы вы вручную перенесли расписание.

Обязательно перенести сигнал тревоги сразу же после его срабатывания, прежде чем делать что-либо еще, что может пойти не так, и предотвратить перегрузку сигнала тревоги.

+0

Какой метод вызывается, чтобы настроить это? Вы должны называть 'setAndAllowWhileIdle()' или что-то еще? – toobsco42

+0

Выполняет ли это обход ограничений выполнения фона в Oreo? Я сомневаюсь в этом. Я использую это и все еще Android говорит, что начало фона не разрешено: service – NinjaCoder

+1

@NinjaCoder Я не вижу, как это связано с диспетчерами аварийных сигналов –