android.os.NetworkOnMainThreadException http://www.eoeandroid.com/thread-272038-1-1.html

android.os.NetworkOnMainThreadException是說不要在主線程中訪問網絡,這個應該是android3.0版本開始就強制不能在主線程中訪問網絡,要把訪問網絡放在獨立的線程中。在開發中,爲了防止訪問網絡阻塞主線程,一般都要把訪問網絡放在獨立線程中或者異步線程AsyncTask中。但是由於某些原因,想要忽略這些強制策略問題的話,可以在onCreate()方法裏面加上
StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
就可以解決你的問題。另外在類的前面,可能要加上@SuppressLint("NewApi")才行。
在android sdk 2.3以上纔有StrictMode類,我在android sdk 2.3.3上編譯測試通過。
注:Android 2.3起,新增加了一個新的類,叫StrictMode(android.os.StrictMode),這個類可以用來幫助開發者改進他們編寫的應用,並且提供了各種的策略,這些策略能隨時檢查和報告開發者開發應用中存在的問題,比如可以監視那些本不應該在主線程中完成的工作或者其他的一些不規範和不好的代碼。
在android sdk 4.0版本上,這個問題可能比較常見,呵呵。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章