#java #android #kotlin #timer #schedule
#java #Android #kotlin #таймер #Расписание
Вопрос:
В приложении запущен ForegroundService. Пока эта служба запущена, ей необходимо выполнять некоторые задачи каждые 5 секунд. Важно измерять временной интервал в прошедшем системном времени.
- Обработчик.postDelayed
- Таймер
- ScheduledExecutorService
- Сопрограммы Kotlin
- RxJava
Все они работают в режиме безотказной работы и зависят от режима ожидания процессора. Официальная документация рекомендует использовать AlarmManager для задач с точным временем, но для таких коротких интервалов это не сработает и приведет к «чрезмерному пробуждению». предупреждение. Сохранение блокировки, предотвращающей спящий режим процессора, приведет к интенсивному использованию батареи приложением.
Итак, мой вопрос: как запланировать задачу, которая будет выполнена за короткий промежуток времени (несколько секунд), где время измеряется по истекшей временной шкале?
Заранее спасибо за вашу помощь.
Комментарии:
1. Я не думаю, что смогу помочь вам, когда вы опишете свою проблему, поскольку мои ответы на вопросы — это то, что вы уже пробовали. Но если вы не возражаете, не могли бы вы описать задачу, которую вы хотите повторять каждые 5 секунд? Может быть, есть другой способ подойти к этой проблеме в целом.
2. В основном приложение должно проверять, соответствуют ли несколько типов данных условию. Например: количество полученных местоположений за определенный период времени. Это не может управляться данными, потому что местоположения могут перестать поступать, если сигнал GPS потерян.