460
技术社区[云栖]
Android3.0版本以上出现android.os.NetworkOnMainThreadException异常与处理方式
https://www.cnblogs.com/awenhome/archive/2012/01/04/2311659.html
以前用2.2 访问WebService没有问题,到3.0上访问出现android.os.NetworkOnMainThreadException
找了资料经过实践,解决方法如下:
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectDiskReads().detectDiskWrites().detectNetwork() // or // .detectAll() // for // all // detectable // problems .penaltyLog().build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() .detectLeakedSqlLiteObjects().detectLeakedClosableObjects() .penaltyLog().penaltyDeath().build());
PS:1.在2.3版本以后加入了StrictMode类,而在3.0在网络上能感觉到有更加严格的限制,更多的查询API上的StrictMode ;
2.使用的时候只需要在你项目运行的入口Activity的OnCreate中放入这段代码,那么整个项目程序都有用。不需要每个Activity里面加入。
3.StrictMode类一般是用来调试的,在程序运行中会打印很多消息,那是告诉你你的项目程序需要改进的地方。在Android项目中,最好的是让界面与后台装载程序分开来。总之,如果你的程序代码非常符合Android规范要求,那么你完全可以不使用上面的代码
最后更新:2017-04-02 17:28:41
上一篇:
android读取大图片并缓存
下一篇:
模仿网易新闻图片点击放大效果
Spring 设计理念探讨系列一
机器学习的入门“秘籍”
当前时间的下一秒
阿里云校园公益极客大赛正式启动 公益+科技+未来,打造不一样的校园赛事!
关闭IBM HTTP Server插件自动生成服务,以避免部署大量应用时导致Dmgr内存溢出
MaxCompute-GRAPH可配置参数列表(持续更新)
lnmp环境搭建
IT早报网今日起在SAE试运行,欢迎大家多多提建议
tomcat报错INFO: Maximum number of threads (200) created for connector with address null and port 8080
根据您的需要选择最佳 PaaS 云