Android 如何创建AsyncTask以消除NetworkOnMainThreadException?

Android 如何创建AsyncTask以消除NetworkOnMainThreadException?,android,Android,可能重复: 我的android应用程序在emulator上运行,但在手机上显示的是android.os.NetworkOnMainThreadException。通过搜索,我知道可以使用AsyncTask清除它。有谁能帮我创建一个AsyncTask,在单击按钮时调用httppost并返回对onCreate的响应 我做到了,下面是代码 private class DownloadWebPageTask extends AsyncTask<String, Void, String> {

可能重复:


我的android应用程序在emulator上运行,但在手机上显示的是
android.os.NetworkOnMainThreadException
。通过搜索,我知道可以使用
AsyncTask
清除它。有谁能帮我创建一个
AsyncTask
,在单击按钮时调用httppost并返回对
onCreate
的响应

我做到了,下面是代码

private class DownloadWebPageTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
  String response = "";
  for (String url : urls) {
    DefaultHttpClient client = new DefaultHttpClient();
    HttpGet httpGet = new HttpGet(url);
    try {
      HttpResponse execute = client.execute(httpGet);
      InputStream content = execute.getEntity().getContent();

      BufferedReader buffer = new BufferedReader(new InputStreamReader(content));
      String s = "";
      while ((s = buffer.readLine()) != null) {
        response += s;
      }

    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  return response;
}

@Override
protected void onPostExecute(String result) {
  textView.setText(result);
}
私有类下载WebPagetTask扩展异步任务{
@凌驾
受保护的字符串doInBackground(字符串…URL){
字符串响应=”;
for(字符串url:url){
DefaultHttpClient=新的DefaultHttpClient();
HttpGet HttpGet=新的HttpGet(url);
试一试{
HttpResponse execute=client.execute(httpGet);
InputStream内容=execute.getEntity().getContent();
BufferedReader buffer=新的BufferedReader(新的InputStreamReader(内容));
字符串s=“”;
而((s=buffer.readLine())!=null){
响应+=s;
}
}捕获(例外e){
e、 printStackTrace();
}
}
返回响应;
}
@凌驾
受保护的void onPostExecute(字符串结果){
setText(结果);
}

}

它出现在Android 3.0及更高版本上。谢谢大家,成功了。