您的位置:首页 > 理论基础 > 计算机网络

android中Http访问时 connection.getResponseCode()不被执行

2016-04-15 12:39 399 查看
昨天看视频学习android,但是做到查看网络图片时一直不成功,最终通过debug找到了是HttpURLConnection 的getResponseCode()抛异常,查询了下资料是因为

**

访问HTTP的请求没有放在单独线程而是放在主线程 了

**

当然这是android 在4.0以后才会出现的问题。这也是谷歌工程师为了解决用户体验问题设计的结构,也就是必须把联网操作放在一个单线程中,这样就在主线程数据多的情况下提升用户的体验,及不用使得用户用过长时间去等待。

解决办法:

1、把http的请求单独放在一个新线程中,当然你也必须需要管理消息机制进行相关操作

2、或者在调用此Http访问的Activity的onCreat()方法下面加:closeStrictMode();

具体closeStrictMode()方法如下

public static void closeStrictMode() {

StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()

.detectAll().penaltyLog().build());

}

就解决了!!

具体StrictMode()介绍请看:http://www.bkjia.com/Androidjc/966106.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: