- Android 网络连接有限制吗?
- 如果我们想限制后台运行的网络连接数,我们该如何实现呢?
- 如果我们在 AsyncTask 中启动一个网络连接,如果我们使用 取消它
AsyncTask_object.cancel(true)
,它会关闭所有相应的内部网络连接吗? - 如何在 Android 中取消正在运行的网络连接?
问问题
1356 次
2 回答
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/
于 2012-04-10T11:40:28.553 回答
1
回答你的第三个问题:
调用 AsyncTask_object.cancel(true) 不会关闭内部连接,而是调用 AsyncTask 类的回调方法 onCancelled()。因此,您有责任在 onCancelled() 中编写代码,该代码将取消/回滚 AsyncTask 中正在进行的所有工作。您可以调用 isCancelled() 来了解任务是否被取消。
例子:
if(task.getStatus() != AsyncTask.Status.FINISHED)
task.cancel(true);
在异步任务中:
@Override
protected void onCancelled() {
//cancell/rollback the work being done
}
于 2012-04-10T11:43:24.833 回答