Связь с сервером - приложение для Android

У меня есть приложение для Android, которое загружает и загружает файл каждые 15 минут. Я использую AlarmManager setRepeating () для этого, но он потребляет много батареи и неэффективен. Но я хочу реструктурировать это приложение, чтобы оно работало на устройствах "Зефир" и выше. Я читал о JobScheduler и адаптере синхронизации, но проблема в режиме Doze. Согласно официальной документации

https://developer.android.com/training/monitoring-device-state/doze-standby.html

JobScheduler и Sync Adapter не будут работать в режиме ожидания.

Итак, как сделать так, чтобы приложение для Android и сервер общались каждые 15 минут, даже в режиме ожидания.

Благодарю.

2 ответа

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

Alarmmanager не потребляет много батареи. Тревожное событие поступает из операционной системы.

Согласно документам разработчика Android, AlarmManager продолжит работу над зефиром и выше.

Стандартные тревоги AlarmManager (включая setExact() и setWindow()) откладываются до следующего окна обслуживания.

  1. Если вам нужно установить сигналы тревоги, которые срабатывают в режиме Doze, используйте setAndAllowWhileIdle() или setExactAndAllowWhileIdle ().
  2. Сигналы тревоги, установленные с помощью setAlarmClock(), продолжают срабатывать в обычном режиме - система выходит из режима Doze незадолго до срабатывания этих сигналов.
Другие вопросы по тегам