最近在做一个项目App开发时,功能需求要在ListView自定义适配器中加载网络图片进行适配时遇到了这个异常:
android.os.NetworkOnMainThreadException
然后Google了下相关博文,翻到了一篇帮我解决了这个问题有用的答案,这里做个笔记。
原文地址: http://blog.csdn.net/withiter/article/details/19908679
这个异常字面意思是说:在主线程中的网络异常。
然后我就去了解了下这个异常,先看看官方的说明:
所以事情就很清楚了。一个APP如果在主线程中请求网络操作,将会抛出此异常。
Android这个设计是为了防止网络请求时间过长而导致界面假死的情况发生。
解决方案有两个,
一个是使用StrictMode(虽然不推荐,但是能解决问题)
二是使用线程来操作网络请求(4.0后已废弃)。
解决方法: 简单暴力,强制使用,代码修改简单(但是非常不推荐)
在MainActivity文件的setContentView(R.layout.activity_main)下面加上如下代码
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
本文标题:转:解决android.os.NetworkOnMainThreadException
本文链接:https://blog.quwenai.cn/post/3019.html
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。







还没有评论,来说两句吧...