Запланируйте точные по времени задачи в Android на короткий интервал

#java #android #kotlin #timer #schedule

#java #Android #kotlin #таймер #Расписание

Вопрос:

В приложении запущен ForegroundService. Пока эта служба запущена, ей необходимо выполнять некоторые задачи каждые 5 секунд. Важно измерять временной интервал в прошедшем системном времени.

  • Обработчик.postDelayed
  • Таймер
  • ScheduledExecutorService
  • Сопрограммы Kotlin
  • RxJava

Все они работают в режиме безотказной работы и зависят от режима ожидания процессора. Официальная документация рекомендует использовать AlarmManager для задач с точным временем, но для таких коротких интервалов это не сработает и приведет к «чрезмерному пробуждению». предупреждение. Сохранение блокировки, предотвращающей спящий режим процессора, приведет к интенсивному использованию батареи приложением.

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

Заранее спасибо за вашу помощь.

Комментарии:

1. Я не думаю, что смогу помочь вам, когда вы опишете свою проблему, поскольку мои ответы на вопросы — это то, что вы уже пробовали. Но если вы не возражаете, не могли бы вы описать задачу, которую вы хотите повторять каждые 5 секунд? Может быть, есть другой способ подойти к этой проблеме в целом.

2. В основном приложение должно проверять, соответствуют ли несколько типов данных условию. Например: количество полученных местоположений за определенный период времени. Это не может управляться данными, потому что местоположения могут перестать поступать, если сигнал GPS потерян.