在Android4.0之後,會發現,只要是寫在主線程(就是Activity)中的HTTP請求,運行時都會報錯,這是由於Android在4.0之後爲了防止應用的ANR(aplication Not Response)異常,即便這裏表達不是很清晰,你們應該都明白吧,哈哈網絡
就針對此問題有兩種解決的方法:ide
1.能夠再Activity的onCreate()方法中加入這樣一段代碼,以下:ui
if (Build.VERSION.SDK_INT >= 11) {
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads ().detectDiskWrites().detectNetwork().penaltyLog().build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects().detectLeakedClosableObjects().penaltyLog().penaltyDeath().build());
}
後就能夠在主線程中進行網絡操做了spa
2.通常狀況咱們應該這樣作線程
啓動一條子線程進行你的網絡請求。it
固然,若是你的應用程序執行的網絡請求數據量很小的話,能夠使用第一種方案io