【发布时间】:2012-06-27 01:31:19
【问题描述】:
当我登录到我的应用程序时,异步任务开始执行,而当该任务正在执行并且我注销应用程序时,该任务仍在运行并在一段时间后给我结果(尽管我已经注销)。我想问一下,有没有什么办法可以取消那个任务,让它不给我结果?
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() 中的日志语句永远不会被调用。
【问题讨论】:
-
发生的情况是,我正在从 Web 服务获取数据。同时运行 6 个异步任务。问题是当第一个异步任务开始执行并且我注销时,当我用不同的用户登录时,第一个异步任务不再执行。有意义吗?