RSS订阅优然探索
你的位置:首页 » Android » 正文

ndroid3.0版本以上出现android.os.NetworkOnMainThreadException异常与处理方式

选择字号: 超大 标准 发布时间:2013-4-27 17:30:29 | 作者:admin | 0个评论 | 人浏览

以前用2.2 访问WebService没有问题,到3.0上访问出现android.os.NetworkOnMainThreadException

找了资料经过实践,解决方法如下: 

StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() 
                .detectDiskReads().detectDiskWrites().detectNetwork() // 这里或者用 .detectAll() 方法
                                                                                      .penaltyLog().build()); 
        StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() 
                .detectLeakedSqlLiteObjects().detectLeakedClosableObjects() 
                .penaltyLog().penaltyDeath().build());
注:1.在2.3版本以后加入了StrictMode类,而在3.0在网络上能感觉到有更加严格的限制,更多的查询API上的StrictMode ;
      2.使用的时候只需要在你项目运行的入口Activity的OnCreate中放入这段代码,那么整个项目程序都有用。不需要每个Activity里面加入。

      3.StrictMode类一般是用来调试的,在程序运行中会打印很多消息,那是告诉你你的项目程序需要改进的地方。在Android项目中,最好的是让界面与后台装载程序分开来。总之,如果你的程序代码非常符合Android规范要求,那么你完全可以不使用上面的代码...

标签:

猜你喜欢

发表评论

必填

选填

选填

必填,不填不让过哦,嘻嘻。

记住我,下次回复时不用重新输入个人信息

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。