在JobIntentService中将setInterruptIfStopped设置为true有什么意义?

时间:2018-11-19 11:07:12

标签: android job-scheduling android-jobscheduler jobservice jobintentservice

JobIntentService具有setInterruptIfStopped方法,该方法在设置为true时,如果作业已停止,则导致当前正在运行的AsyncTaskcancel

  

void setInterruptIfStopped(布尔中断IfStopped)

     

控制如果作业停止,在onHandleWork(Intent)中执行的代码是否将被中断。默认情况下为false。如果被调用并设置为true,则每次调用onStopCurrentWork()时,该类都会首先调用AsyncTask.cancel(true)来中断正在运行的任务。

https://developer.android.com/reference/android/support/v4/app/JobIntentService

但是,这实际上并不会中断onHandleWork中运行的工作。相反,这只是将boolean中的AsyncTask设置为true,我需要在onHandleWork中进行检查以手动中断我的工作。

  

公共最终布尔值isCancelled()

     

如果此任务在正常完成之前被取消,则返回true。如果要在任务上调用cancel(boolean),则应定期从doInBackground(Object [])中检查此方法返回的值,以尽快结束任务。

https://developer.android.com/reference/android/os/AsyncTask

但是为此,我们已经有了JobIntentService的{​​{1}}方法:

  

boolean isStopped()

     

如果已调用onStopCurrentWork(),则返回true。您可以在执行工作时使用它来查看是否应该停止它。

据我了解,我们甚至无法访问isStopped的{​​{1}}方法。 那么AsyncTaskisCancelled的用途是什么?

0 个答案:

没有答案