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