Android 4.0以后不能在主线程能进行网络访问

来源:互联网 发布:淘宝金币抵钱卖家亏吗 编辑:程序博客网 时间:2024/05/16 05:26

今天尝试使用Xutils的GET请求数据,网上查看以为是异步的操作。在这两个方法内

 @Override        public void onSuccess(ResponseInfo<String> responseInfo) {            textView.setText(responseInfo.result);        }        @Override        public void onStart() {        }
加入了一个线程的获取时间,设强行让线程停止休眠。主要代码

long timeUsed = endTime - startTime;// 访问网络花费时间

if (timeUsed < 10000) {

Thread.sleep(10000 - timeUsed);
// 强制休眠一段时间,

结果发现了 阻塞了UI的执行,,,原来这里设置的是主线程的sleep、由于刚学不理解原理,只能以后网络请求不用Xutils了。等懂了再用回来。更新原因。


。由于4.0以后不能在主线程里面执行网络。也是谷歌的好意!

所以咱必须把请求代码放到线程里或异步的task,或者可以用volley框架。

不然会抛出android.os.NetworkOnMainThreadException 的错误。

0 0
原创粉丝点击