Android中的网络连接数

时间:2012-04-10 11:27:55

标签: android networking android-asynctask

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

2 个答案:

答案 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
}