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及更高版本上。谢谢大家,成功了。