在异步任务启动后,我在按钮单击中调用了asynctask.cancel(true)。我正在检查doinbackground中的iscancelled值并相应地写入条件。条件是
while(myProgress<phnno.size()){
if (isCancelled()) {
break;
}else{
myProgress++;
publishProgress();
SystemClock.sleep(100);
}
}
但是异步任务仍然没有被取消。任何人都可以就此提出建议。 提前致谢
答案 0 :(得分:1)
猜测因为我没有看到你的所有代码。
确保您在同一个cancel()
对象上调用AsyncTask
。不要创建新的。
像这样:
AsyncTask myTask = new AsyncTask();
myTask.execute();
稍后,当您要取消
时myTask.cancel();
答案 1 :(得分:0)
在asynctask中添加此方法:
@Override
protected void onCancelled() {
running = false;
}