У меня есть код ниже:Android HttpClient: NetworkOnMainThreadException
protected void testConnection(String url) {
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(url);
ResponseHandler<String> responsehandler = new BasicResponseHandler();
try {
String connection = httpclient.execute(httpget, responsehandler);
Toast.makeText(getBaseContext(), R.string.connection_succeed, Toast.LENGTH_SHORT).show();
view_result.setText(connection);
} catch(IOException e) {
Toast.makeText(getBaseContext(), R.string.connection_failed, Toast.LENGTH_SHORT).show();
}
httpclient.getConnectionManager().shutdown();
}
и добавить разрешение в Menifest:
<uses-permission android:name="android.permission.INTERNET"/>
Но это идет исключение: NetworkOnMainThreadException, Как я могу это сделать?
Запустите этот метод не в потоке пользовательского интерфейса. Например, в AsyncTask ot thread –
Просмотрите мое сообщение о ** ['NetworkOnMainThreadException'] (http://www.androiddesignpatterns.com/2012/06/app-force-close-honeycomb-ics.html) **. Это объясняет, почему это может произойти. –
Возможный дубликат [android.os.NetworkOnMainThreadException] (http://stackoverflow.com/questions/6343166/android-os-networkonmainthreadexception) – laalto