IntentService – это
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().