JobIntentService
is only bringing IntentService
to Android 8+ that is more strict about background services. It runs like old IntentService
s on devices with older versions of Android.
IntentService
has never been designed to be cancelled, hence the lack of any API to cancel a JobIntentService
.
Therefore, JobIntenService
should only be used for work that don't need to be cancelled. Note that JobIntentService
can still be used for work that can fail, and consequently, be aborted.
Work that can be cancelled should be executed in either:
- An
Activity
(or its ViewModel
) for short duration work
- A JobService (using Firebase Job Dispatcher or Job Scheduler if minSdk is 21)
- A custom foreground service
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…