Android AlarmManager setReating и setInexactRepeating

Я был готов через документацию, и у меня были некоторые вопросы о setReating и setInexactRepeating. Я читал некоторые другие сообщения, но я не мог найти ответ.

Документация говорит для обоих:

Примечание. Начиная с API 19 все повторяющиеся сигналы тревоги являются неточными.

Означает ли это, что оба метода одинаковы в API 19 и выше? И насколько неточен неточен? И если есть какая-либо задержка, каковы последствия для следующей тревоги?

Заранее спасибо.

1 ответ

Решение

Как можно прочитать в конце официальной документации API 19 [и будущих версий], все обращения к setRepeating() будет делегировать setInexactRepeating() вместо. Таким образом, что касается KitKat и последующих версий, оба метода делают одно и то же.

Задержка не повлияет на следующие аварийные сигналы, ссылающиеся на официальную документацию.

Расписание повторяющегося сигнала тревоги, который имеет неточные требования времени запуска; например, сигнал тревоги, который повторяется каждый час, но не обязательно в начале каждого часа. Эти аварийные сигналы более энергоэффективны, чем строгие повторения, традиционно предоставляемые setRepeating(int, long, long, PendingIntent), поскольку система может регулировать время доставки аварийных сигналов, чтобы они срабатывали одновременно, избегая более полного выхода устройства из спящего режима.,

Первый триггер вашего будильника не будет раньше запрошенного времени, но он может не срабатывать в течение почти полного интервала после этого времени. Кроме того, хотя общий период повторяющейся тревоги будет соответствовать запросу, время между любыми двумя последовательными срабатываниями тревоги может варьироваться. Если ваше приложение требует очень низкого дрожания, используйте вместо этого однократные сигналы тревоги с соответствующим окном; см. setWindow(int, long, long, PendingIntent) и setExact(int, long, PendingIntent).

Начиная с API 19, все повторяющиеся тревоги неточны. Поскольку этот метод доступен со времени API 3, ваше приложение может безопасно вызывать его и быть уверенным, что оно будет работать аналогично как в текущей, так и в более старых версиях Android.

Другие вопросы по тегам