Android3.0版本以上出現android.os.NetworkOnMainThreadException異常與處理方式


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM