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());                                      
posted @ 2023-09-26 09:48  txwtech  阅读(1024)  评论(0编辑  收藏  举报