Mar*_*och 10 multithreading android volatile synchronized android-asynctask
我想强制取消AsyncTask.我看到你可以像这个有效的解决方案一样使用isCancelled()(它在引擎盖下使用AtomicBoolean.
但是我看到了像suspiciousSolution1,suspiciousSolution2,suspiciousSolution3这样的解决方案,其中引入了新的标志private boolean isTaskCancelled = false;.
我开始想知道 - 因为那个标志被修改了
public void cancelTask(){
isTaskCancelled = true;
}
Run Code Online (Sandbox Code Playgroud)
它在某些线程上运行,并被读入
protected Void doInBackground( Void... ignoredParams ) {
//Do some stuff
if (isTaskCancelled()){
return;
}
}
Run Code Online (Sandbox Code Playgroud)
在WorkerThread中运行,然后标志不应该isTaskCancelled是volatile(或者像Google的实现中的AtomicBoolean).
| 归档时间: |
|
| 查看次数: |
264 次 |
| 最近记录: |