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

第一种方法:

在主线程中加入这段代码,强制在主线程执行网络请求
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();

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。