AsyncTask_object.cancel(true)
取消它,它会关闭所有相应的内部网络连接吗?答案 0 :(得分:1)
我不确定限制是什么,因为它是基于Linux的。
3
我认为您应该使用onCancelled(Object)
方法进行检查。
4
假设我们这样做:
ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
这应关闭连接:connec.getNetworkInfo(0).setState(NetworkInfo.State.DISCONNECTED);
另外看看 http://vikaskanani.wordpress.com/2011/08/03/android-proper-way-to-cancel-asynctask/
答案 1 :(得分:1)
回答第3个问题:
调用AsyncTask_object.cancel(true)不会关闭内部连接,而是调用AsyncTask类的onCancelled()的回调方法。因此,您可以在onCancelled()中编写代码来取消/回滚在AsyncTask中完成的所有工作。您可以调用isCancelled()来了解任务是否为calcelled。
示例:
if(task.getStatus() != AsyncTask.Status.FINISHED)
task.cancel(true);
在AsyncTask中:
@Override
protected void onCancelled() {
//cancell/rollback the work being done
}