android asynctask-如何断开 HttpURLConnection 的连接?

问题描述

如何断开 HttpURLConnection 的连接?

我使用 AsyncTask来连接一个 URLPath:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.left_list);
     Button btn = (Button)findViewById(resid);
    btn.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            //how to stop connect
        }
    });
    new Connecting().execute();
}
class Connecting extends AsyncTask<String, String, String> {
    @Override
    protected void onPreExecute() {
            super.onPreExecute();
        //do something
    }
        @Override
        protected String doInBackground(String... aurl) {
            try {
                URL url = new URL(URLPath);
                connection = (HttpURLConnection)url.openConnection();
                connection.setConnectTimeout(30000);
                connection.setReadTimeout(30000);
                connection.setDoInput(true);
                connection.setUseCaches(false);
                connection.connect();
                is = connection.getInputStream();
            }
            catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
        @Override
        protected void onPostExecute(String unused) {
            super.onPostExecute(unused);
        //access InputStream is
        }
}

连接期间可能会占用很长时间。
在连接的时候我想设置 点击 Bbutton 按钮来终止 connection 的连接。
如何在 setOnClickListener 方法中设置呢?

解决方案

使用urlConnection的disconnect方法,如果想在外部做disconnect操作,就把urlConnection放在外部初始化完传进来,但是要注意对应关系。

解决方案二:

不是有个disconnect()方法吗?

官方例子
URL url = new URL("http://www.android.com/");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
try {
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
readStream(in);
} finally {
urlConnection.disconnect();
}
}
你只需要在onclick中做disconnect就行了

时间: 2024-10-29 02:36:41

android asynctask-如何断开 HttpURLConnection 的连接?的相关文章

Android 如何实现动态监听连接手机的蓝牙设备是否因为某些原因断开

问题描述 Android 如何实现动态监听连接手机的蓝牙设备是否因为某些原因断开 Android蓝牙API提供的方法中,isconnected(),基本做不到实时检测连接状态,其他的方法,等到的也是设备绑定的状态,并不是我想要的.本来通过写或读数据是可以判断连接状态的,但是,自己起线程轮询的收发数据过去,判断读写异常时可以实现,但是会影响用户发送的数据,业务要求不允许.网络连接中有NetSocket.sendUrgentData(0)这个方法可以做到,偏偏蓝牙又没有,我该怎么做,求指点! 解决方

android RDP远程桌面客户端怎样连接?

问题描述 android RDP远程桌面客户端怎样连接? 找的开源代码,不知道怎么连接了 手机上有客户端 ,电脑上应该怎么弄?

app低内存-Android怎么保持service中的连接不断掉

问题描述 Android怎么保持service中的连接不断掉 Android应用在service维持了一个与服务器间的socket连接,在调用系统相机拍照的时候,在一些低端机上会因为内存不足而把应用结束掉,拍完照之后应用会回复,但是service中连接的session就变成null了,请问怎么能在拍照时保持这个连接不断掉? 解决方案 android Service 保持cpu 解决方案二: 1.原因是拍照时,把后台的Activity回收了: 2.方法,增加进程的优先级: 具体见我的博客:http

android使用ormLite,多表连接查询

问题描述 android使用ormLite,多表连接查询 解决方案

wifi热点-Android 如何获取所有的wifi连接历史记录?

问题描述 Android 如何获取所有的wifi连接历史记录? 不是附近的wifi热点,而是本机所有连接过的wifi热点名称.也就是保存过的wifi热点信息. 解决方案 1.首先安卓系统必须root才可以获取这样的文件信息. 2.root之后使用Re管理器这样的软件. 3.路径:?/data/misc/wifi 4.文件名称:wpa_supplicant.conf 用文本模式查看 在这里就有你要查看的连接WiFi密码名称

networking-关闭WIFI/3G/GPRS后,如何欺骗Android的ConnectiviyManager仍然存在可用连接?

问题描述 关闭WIFI/3G/GPRS后,如何欺骗Android的ConnectiviyManager仍然存在可用连接? 我在Android上做了一个网络App,创建了一个tun设备作为网卡.首先我关闭其他的网络设备包括eth0(WLAN)和rmnet0(3G/GPRS),然后加一条路由 ip route add default dev tun0 来把所有网络数据转向到我创建的这个虚拟网卡.接下来当我做ping的时候,能够发现我的虚拟网卡收到了数据,这时候QQ和系统原生的浏览器也可以正常工作了.

android与mysql数据库之间的连接?

问题描述 android与mysql数据库之间的连接? 现在要做一个人口管理系统,android界面也做好了,mysql数据库也做好了,就是不知道这直接用什么方法来连接.求大神告诉我怎么连接比较好,谢谢了. 解决方案 应该在你的服务器上去连mysql,然后你的 android 通过 web service 去连你的服务器,而不是直接连数据库. 解决方案二: 应该在你的服务器上去连mysql,然后你的 android 通过 web service 去连你的服务器,而不是直接连数据库. 解决方案三:

ndroid 提示 关闭-Android 代码实现去掉打开数据连接提示和打开wlan提示

问题描述 Android 代码实现去掉打开数据连接提示和打开wlan提示 代码实现去掉打开数据连接提示和打开wlan提示 解决方案 http://bbs.gfan.com/android-7457816-1-1.htmlhttp://bbs.hiapk.com/thread-20349235-1-1.html 你点击进去看看对你有没有帮助. 如果回答对你有帮助,请采纳

Android使用socket创建简单TCP连接的方法_Android

本文实例讲述了Android使用socket创建简单TCP连接的方法.分享给大家供大家参考,具体如下: 不管是在Java还是Android编程中,通信都是及其重要的一部分.有连接的socket编程,重要性自然毋庸置疑. 这里以一个简单的demo演示一个最基本的socket编程. 先写服务端.服务端是Java代码.笔者懒得装eclipse等编程软件,就是直接notepad编程,dos运行的.服务端一般是新建一个绑定端口的serversocket,监听客户端请求(死循环监听).当接收到客户端消息时,