Как сделать приложение, выполняющее некое действие по заданному интервалу?
На первый взгляд задача кажется простой, но как и многое в Android - только кажется.
Требования к приложению:
- Оно должно продолжать выполнять действия после закрытия всех активити
- И в случае перезапуска устройства таймер тоже должен продолжать работать, причем так, чтобы устройство могло пролежать какое-то время выключенным, но это не сбило таймер
- Важна точность: отклонения допустимы (иногда можно срабатывать чуть позже или чуть раньше), но должны компенсироваться в следующем же интервале.
Становится понятно, что надо использовать какой-то "планировщик задач", а не какое-то низкоуровневое велосипедное решение.
Но вот незадача - а какой?
WorkManager - Не подходит. Минимальный интервал 15 минут. И меньше - никак. Видите ли, Google заботится о моей батарее, Google виднее. Они крутые ребята и мыслят философией Google Play и среднего пользователя смартфонов\планшетов. Но при этом забывают изначальные возможности Андроида. Так вот, мое приложение - для встраиваемых систем и никакой батареи там нет вообще :) Шах и мат, Google. А вот интервал надо чтобы хоть 1 минуту можно было ставить. А в идеале и 1 секунду.
AlarmManager? Старенький класс, работу которого усложнили в API 19.