Каков наиболее эффективный метод периодического вызова API в фоновом режиме?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Каков наиболее эффективный метод периодического вызова API в фоновом режиме?

Сообщение Anonymous »

У меня есть приложение, в котором я использую TimeTask для подсчета timeFromLastOrderLoad.

Код: Выделить всё

      val t: TimerTask = object : TimerTask() {
override fun run() {
timeFromLastOrderLoad += 1
if (timeFromLastOrderLoad >= reloadingPeriod) {
timeFromLastOrderLoad = 0
activity?.get()?.runOnUiThread {
getStatus()
}
}
}
}
reloadOrdersTimer?.schedule(t, 0, 1000)
Функция getStatus используется с другими вызовами API, такими как ReadyToGetDataCall() и т. д.
Поэтому каждые 15 секунд мои приложения отправляют запросы API. Если приложение работает в фоновом режиме, мне все равно нужно совершать эти вызовы каждые 15 секунд и проверять, меняется ли что-то, а затем воспроизводить музыку, например колокол.
Иногда это работает в фоновом режиме, иногда нет. Я понимаю это из-за очистки памяти на моем телефоне.
Я знаю, что это не очень хороший подход. Я знаю, что мы могли бы использовать FCM с обратной интеграцией, но на данный момент у меня есть такие предложения:
  • Создайте WorkManager, который будет выполнять ту же работу в фоновом режиме с тем же подходом TimerTask или с использованием задержки приостановки (15 секунд), но все же, если Я хорошо понимаю из документации. Coroutine Workmanager будет очищаться так же, как и реальный подход.
  • Когда приложение переходит в фоновый режим, создайте службу Foreground Service, которая должна долго жить дольше, чем 2 предыдущих подхода (фактический и рабочий), когда он возвращается на передний план, используется реальный подход к получению данных.
  • ? Я не уверен, что у меня есть другие варианты, если я все еще не могу положиться на решения с помощью FCM.
Спасибо за любые подходы, которые вы предлагаете. думаю, может быть лучшим.
Как решить эту проблему?

Подробнее здесь: https://stackoverflow.com/questions/790 ... he-backgro
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»