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 @   txwtech  阅读(1217)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2021-09-26 鸿蒙开发板Hi3861模拟SPI驱动JLX_LCD_基于code-2.0-CANARY
点击右上角即可分享
微信分享提示