我使用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语句永远不会被调用。
答案 0 :(得分:1)
为什么您希望Android本身执行isCancelled()
。
这是一种getter方法,允许您的代码查询任务的状态。