在安卓主线程不能发送网络请求的解决办法

第一种方法:

在主线程中加入这段代码,强制在主线程执行网络请求
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}

第二种方法:

利用安卓系统自带的异步执行,将网络请求的代码加入在里面

new AsyncTask<Void, Void, Integer>(){
@Override
protected Integer doInBackground(Void... arg0) {
try{
  //发送网络请求
}catch (Exception e) {
}
return 0;
}
@Override
protected void onPostExecute(Integer result) {
  //根据结果执行代码
}
}.execute();

你可能感兴趣的:(线程)