调用onCancelled(),但永远不会调用isCancelled()

时间:2012-06-29 08:42:04

标签: android android-asynctask

我使用http request制作AsyncTask,我想要的是当我退出时,AsyncTask应该停止。所以我在cancel(true)中呼叫onStop()。当我调用cancel(true)时,尚未启动的请求被取消,但问题是永远不会调用isCancelled()来检查执行任务是否被取消。我在isCancelled() doInBackgroud()方法中检查AsyncTask是否有办法停止执行AsyncTask。以下是该方案。

class AsyncClass extends AsyncTask<>{

    @Override
     protected String doInBackground(Void... params)
      {
             if(isCancelled())
               {
                Log.d("isCancelled", iscancelled());
               }
          //call the webservice

      }
    }

现在我正在调用

的其他类
if(asyncTaskObject!=null){
    asyncTaskObject.cancel(true);
        asyncTaskObject=null;
}

但iscancelled()中的Log语句永远不会被调用。

1 个答案:

答案 0 :(得分:1)

为什么您希望Android本身执行isCancelled()。 这是一种getter方法,允许您的代码查询任务的状态。