Какой смысл устанавливать для setInterruptIfStopped значение true в JobIntentService?
JobIntentService имеет setInterruptIfStopped
метод, который, когда установлен true
вызывает текущие AsyncTask
в cancel
если работа остановлена:
void setInterruptIfStopped (логическое interruptIfStopped)
Проверьте, будет ли прерван код, выполняющийся в onHandleWork(Intent), если задание остановлено. По умолчанию это ложно. При вызове и значении true каждый раз, когда вызывается onStopCurrentWork(), класс сначала вызывает AsyncTask.cancel(true) для прерывания выполняющейся задачи.
https://developer.android.com/reference/android/support/v4/app/JobIntentService
Тем не менее, это на самом деле не прерывает работу в onHandleWork
, Вместо этого это просто устанавливает boolean
в AsyncTask
в true
, который я должен был бы проверить в onHandleWork
прервать мою работу вручную.
открытый финальный логический isCancelled ()
Возвращает true, если эта задача была отменена до ее нормального завершения. Если вы вызываете метод отмены (логический) для задачи, значение, возвращаемое этим методом, следует периодически проверять из doInBackground(Object[]), чтобы завершить задачу как можно скорее.
https://developer.android.com/reference/android/os/AsyncTask
Но для этого у нас уже есть JobIntentService
"s isStopped
метод:
логическое isStopped ()
Возвращает true, если был вызван onStopCurrentWork(). Вы можете использовать это, выполняя свою работу, чтобы увидеть, должна ли она быть остановлена.
Насколько я понимаю, мы не можем даже получить доступ к AsyncTask
"s isCancelled
метод. Так какая польза от setInterruptIfStopped
в JobIntentService
?