2012年10月23日

Android 3.0 發生 android.os.NetworkOnMainThreadException


在作socket連線時,出現了這個錯誤訊息

網路上找到的資料解釋為
是Android 3.0以上在網路的存取上增強的限制。
所以必須要onCreate()中加入底下的程式碼
測試過後即可解決問題
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());