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

今天尝试使用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 的错误。

你可能感兴趣的:(一些记录)