2012年8月23日

【Android】Android 3.0 使用WebService 發生android.os.NetworkOnMainThreadException異常

WebService (包含HTTP Request等)在2.x以前可以正常運作,但在Android 3.0以後會出現
下列這問題: android.os.NetworkOnMainThreadException at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
原因在於從API 9開始,android 對 Thread Policy有所改變,導致對Network存取會發生不允許的現像。

Solution:
 在onCreate()加入下段程式


    if (android.os.Build.VERSION.SDK_INT > 9) {
      StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
      StrictMode.setThreadPolicy(policy);
    }
Reference:


沒有留言: