4
  1. Android 网络连接有限制吗?
  2. 如果我们想限制后台运行的网络连接数,我们该如何实现呢?
  3. 如果我们在 AsyncTask 中启动一个网络连接,如果我们使用 取消它AsyncTask_object.cancel(true),它会关闭所有相应的内部网络连接吗?
  4. 如何在 Android 中取消正在运行的网络连接?
4

2 回答 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 回答