0

在异步任务启动后,我在按钮单击中调用了 asynctask.cancel(true)。我正在检查 doinbackground 中的 iscancelled 值并相应地写入条件。条件是

while(myProgress<phnno.size()){

                if (isCancelled()) {


                    break;
                }else{
                     myProgress++;
                        publishProgress();
                           SystemClock.sleep(100);
                }

               }

但是异步任务仍然没有取消。有人可以就此提出建议。提前致谢

4

2 回答 2

1

猜测是因为我还没有看到你所有的代码。

确保您调用cancel()的是同一个AsyncTask对象。不要创建一个新的。

像这样:

AsyncTask myTask = new AsyncTask();
myTask.execute();

稍后,当您想取消时

myTask.cancel();
于 2013-06-07T10:54:08.797 回答
0

在 asynctask 中添加此方法:

@Override
    protected void onCancelled() {
        running = false;
    }
于 2013-06-07T10:42:15.570 回答