在Android 4.0以上,網路連接不能放在主執行緒上,否則報錯android.os.NetworkOnMainThreadException,但是4.0下版本可以不會報錯,
官方解釋
在Android4.0以后,寫在主執行緒(就是Activity)中的HTTP請求,運行時都會報錯,這是因為Android在4.0以后為了防止應用的ANR(Aplication Not Response)例外,Android這個設計是為了防止網路請求時間過長而導致界面假死的情況發生,
解決方案
1、在Activity的onCreate()方法中加入代碼
適用于網路請求資料量很小
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
2、啟動子執行緒進行網路請求(推薦使用)
new Thread(new Runnable(){
@Override
public void run() {
//請求詳情
}).start();
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/259760.html
標籤:其他
