Service
, который работает (выполняет код метода onHandleIntent()) в фоновом потоке.IntentService
останавливается сам после завершения выполнения метода onHandleIntent()
, т.е. не нужно вызывать stopSelf().IntentService
работает на одном фоновом потоке и выполняет задачи в порядке очереди.Используется когда нужно выполнить фоновую задачу (не привязанную активити) в фоновом потоке (не в UI треде).
Начиная с Android 8.0 (API level 26) ОС ограничивает работу фоновых сервисов.
IntentService
– не исключение, поэтому если target api приложения – 26 или выше, используйте JobIntentService.JobIntentService
используется для тех же целей, что и IntentService
, и имеет похожий API.Для старта
JobIntentService
используется статический метод enqueueWork(), который использует Context.startServce() для API level < 26
и JobScheduler.enqueue() для API level ≥ 26
. После этого система стартует сервис и вызывает в фоновом потоке метод onHandleWork().