Как правильно реализовать возобновляемый планировщик на Android? - PullRequest
0 голосов
/ 26 апреля 2019

Я думаю о написании простого Android, который выполняет задачу (например, извлекает текущее местоположение или отправляет некоторые значения в БД) со следующими требованиями:

  • Задача выполняется с определенным интервалом, скажемза 1 минуту или 5 минут
  • Каждый раз, когда запускается задача, она должна запускаться, даже если приложение свернуто.
  • Задача может быть отменена / возобновлена ​​в любое время (пользователь, нажавкнопка в приложении).

Как правильно реализовать это.IntentService?JobIntentService?JobScheduler

Ответы [ 2 ]

0 голосов
/ 26 апреля 2019

Учитывая ваши требования, особенно повторение в течение 1 или 5 минут, единственный вариант - использовать службу переднего плана.

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

Начиная с Android Oreo, получение местоположения, когда ваше приложение находится в фоновом режиме, имеет некоторые ограничения для сохранения заряда батареи: https://developer.android.com/about/versions/oreo/background-location-limits

0 голосов
/ 26 апреля 2019

В зависимости от ваших потребностей есть три способа:

Во всех трех случаях вам нужно хранить ссылку на вашу работу (первые два варианта позволяют вам сохранить и идентификатор).

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

Надеюсь, это даст вам несколько советов. Приветствия.

...