AsyncTask приостанавливается на Android 8.1.0 - PullRequest
0 голосов
/ 18 мая 2018

Я занимаюсь разработкой приложения для Android, в котором приложение загружает большое количество файлов с сервера.Код выполняет эту операцию загрузки в фоновом потоке, используя AsyncTask .

Во время тестирования приложения на устройстве Google Pixel Android 8.0 я обнаружил, что операция загрузки приостанавливаетсяесли я не использую устройство в течение примерно 20-25 минут .

У меня возникают следующие вопросы:

  1. Существуют ли в коде какие-либо настройки, позволяющиекод для продолжения операции загрузки?
  2. Это функция Android Oreo , когда ОС приостанавливает работу приложения для оптимизации батареи ?

Буду признателен за любые предложения и мысли на эту тему.Спасибо.

1 Ответ

0 голосов
/ 18 мая 2018

Android 8.0 (уровень API 26) вводит для увеличения времени автономной работы, когда ваше приложение переходит в состояние кэшированное , без активных компонентов , система освобождает любые wakelocks, которые удерживает приложение,

Для получения дополнительной информации см. Пределы выполнения фона .

Для выполнения операции загрузки можно использовать Foreground Service .

Новый метод startForegroundService () запускает службу переднего плана.Система позволяет приложениям вызывать Context.startForegroundService(), даже если приложение находится в фоновом режиме.Однако приложение должно вызвать метод startForeground() этой службы в течение через пять секунд после создания службы, в противном случае система останавливает службу и объявляет приложение ANR .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...