Почему приложение ведёт себя именно так и чем платят настройки
Чтобы заметить, что данные перестали приходить, приложение должно само проснуться — событий-то нет: нет данных, нет и повода. Будит его системный будильник.
Будильники бывают двух видов, и разница между ними видна только ночью.
Система вправе сдвинуть такое пробуждение, чтобы разбудить все приложения разом и сэкономить заряд. В глубоком сне сдвиг доходит до девяти минут.
Значит порог «данных нет 15 минут» на деле означает «узнаем в пределах 24 минут». Приложение так и пишет рядом с настройкой — числу, которое не выполняется, верить нельзя.
Разрешения не требует.
Просыпаемся тогда, когда просили. Пятнадцать минут остаются пятнадцатью.
Стоит это отдельного разрешения, которое вы выдаёте в системных настройках. Android спросит подтверждение и, скорее всего, предупредит про расход батареи.
По заряду — мало. Пробуждение раз в несколько минут стоит долей процента в сутки: приложение просыпается, сравнивает два числа и засыпает обратно. Дороже обходится радиосвязь с прибором, которая идёт постоянно.
По тревогам — почти ничего. Порог 15 минут вместо 20 добавляет примерно одну лишнюю тревогу в месяц: обрывы связи такой длины редки.
Выигрыш — пять минут. Ночью это разница между «узнал» и «узнал позже».
Оставить неточный, если порог у вас 20 минут или больше: там сдвиг в девять минут погоды не делает, а лишнее разрешение — лишнее.
Включить точный, если хотите короткий ночной порог и чтобы написанное число значило написанное.
Ошибиться тут нельзя необратимо: выключается так же, как включается, и приложение сразу перепишет фактическое время рядом с порогом.
Точный будильник помогает заметить пропажу данных вовремя. Он не помогает разбудить вас — за это отвечают разрешения на звук и обход тихого режима, и без них тревога придёт вовремя, но беззвучной.
Смотрите также: тревоги и их уровни, режим сна.