Мое приложение уже использует некоторые последние шаблоны Android для сетевых вызовов:
LiveData
class - Архитектура MVVM с
ViewModel
class - Сопрограммы Kotlin дляКлассы репозитория
Retrofit
интерфейс и т. Д.
Теперь я хочу реализовать общую функцию, которая заключается в автоматическом получении текущих данных из API каждые несколько минут .
Я прочитал о WorkManager
и дал ему шанс - я реализовал это, но потом увидел, что WorkManager
(JobScheduler
) продолжает работать после закрытия приложения, а это не то, что я хочу.Мне также показалось, что WorkManager
API слишком сложен для этой простой задачи.
Затем я прочитал руководство по Codepath, в котором предлагается класс Handler
для повторяющихся заданий основного потока и ScheduledThreadPoolExecutor
для фоновых повторяющихся задач.Я знаю, что они, вероятно, будут работать нормально, но я не уверен, что они являются лучшим решением.
Мой вопрос: каков на данный момент лучший способ для повторяющихся вызовов API, которые:
- работает с классами
LiveData
и ViewModel
(наблюдаемый результат, как при обычном вызове API) - является дружественным для Kotlin (каким-либо образом сделать сопрограмму повторяющейся?)
- является "осведомленной о жизненном цикле",это означает, что он остановится, когда приложение перейдет в фоновый режим?