JobIntentService 有一个setInterruptIfStopped
方法,当设置为 时,如果作业停止true
,则导致当前运行:AsyncTask
cancel
void setInterruptIfStopped(布尔型中断IfStopped)
如果作业停止,控制在 onHandleWork(Intent) 中执行的代码是否会被中断。默认情况下这是错误的。如果调用并设置为 true,则任何时候调用 onStopCurrentWork(),该类都会首先调用 AsyncTask.cancel(true) 来中断正在运行的任务。
https://developer.android.com/reference/android/support/v4/app/JobIntentService
但是,这实际上并不会中断onHandleWork
. 相反,这只是boolean
在AsyncTask
to中设置 a true
,我需要检查它onHandleWork
以手动中断我的工作。
public final boolean isCancelled()
如果此任务在正常完成之前被取消,则返回 true。如果您在任务上调用 cancel(boolean),则应定期从 doInBackground(Object[]) 检查此方法返回的值,以尽快结束任务。
https://developer.android.com/reference/android/os/AsyncTask
但是为此我们已经有了JobIntentService
'isStopped
方法:
布尔 isStopped ()
如果 onStopCurrentWork() 已被调用,则返回 true。您可以在执行工作时使用它来查看是否应该停止它。
据我了解,我们甚至无法访问AsyncTask
'isCancelled
方法。那么 in 有什么用setInterruptIfStopped
呢JobIntentService
?