以前用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規范要求,那么你完全可以不使用上面的代碼...