android.os.NetworkOnMainThreadException主线程访问网络时出的异常
参考:
https://www.cnblogs.com/lynchyo/p/3520328.html
android.os.NetworkOnMainThreadException
这个异常大概意思是在主线程访问网络时出的异常。 Android在4.0之前的版本 支持在主线程中访问网络,但是在4.0以后对这部分程序进行了优化,也就是说访问网络的代码不能写在主线程中了。
为了把域名转化为ip地址,我在主线程中调用GetInetAddress函数。
解决方法有两个:
1、调用上面函数前,在onCreate函数里面添加如下代码:
//详见StrictMode文档 StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork().penaltyLog().build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects().detectLeakedClosableObjects().penaltyLog().penaltyDeath().build());
欢迎讨论,相互学习。
cdtxw@foxmail.com