NetworkOnMainThreadException

来源:互联网 发布:小视频网站源码 编辑:程序博客网 时间:2024/05/20 11:23

这个异常出现是因为,自己将访问网络的操作放在主线程MainActivity里了,访问网络是一个相当耗时的操作,所以平常都是放在主线程里的。虽然我们编写其他程序时可以将访问网络的操作放到主线程里,但是Android 拒绝我们这个做。

解决方法:

将访问网络的操作放到子线程里,具体操作多种多样,下面是一个例子:

private class BtnOnclickListener implements OnClickListener {@Overridepublic void onClick(View v) {new Thread(r).start();}}private Runnable r = new Runnable() {@Overridepublic void run() {HttpUtils utils = new HttpUtils();String text;text = utils.downloadText("http://10.6.12.54:8080/voa/word.lrc");System.out.println(text);}};


我将网络访问放到Runnable的匿名类的run()方法里,然后在按钮的点击事件处理时启动这个线程。


0 0