如何解决Android中的NetworkonMainThreadException?
这个问题在这里已经有了答案:
你的Exception
实际上告诉你到底你做错了什么。 您没有使用另一个线程来执行NetworkOperations 。 相反,您在您的UI线程上执行网络操作,但无法(不)在Android上工作。
连接到url的代码应该在AsyncTasks doInBackground()
方法内执行,例如在UI线程之外。
看看如何使用AsyncTask的这个问题: 如何使用AsyncTask
使用下面的代码。
private class UpdateTask extends AsyncTask<String, String,String> {
protected String doInBackground(String... urls) {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
return null;
}
}
并在你的ManinActivity使用下面的代码。
new UpdateTask().execute();
在您的活动onCreate
方法中添加以下行
StrictMode.ThreadPolicy policy = new
StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
链接地址: http://www.djcxy.com/p/29531.html