Какой смысл устанавливать для 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?

0 ответов

Другие вопросы по тегам