#android #httpurlconnection
Возникла проблема: при обращении к http-серверу появляется исключение android.os.NetworkOnMainThreadException, сложность в том, что исключение происходит внутри класса, наследованного от AsyncTask. Фрагмент кода: public class NH { public static String URL_SERVER = "http://myserver.com/"; public static String DIR_IMAGES = "images/"; public void updateData() { ListimgFiles = new ArrayList (); imgFiles.add("t001.png"); imgFiles.add("t002.png"); imgFiles.add("t003.png"); for (String img :imgFiles) { (new GetImages()).doInBackground(img); } } class GetImages extends AsyncTask { @Override private Void doInBackground(String... params) { String imgName = params[0]; try { URL url = new URL( URL_SERVER + DIR_IMAGES + imgName); HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); httpURLConnection.setDoInput(true); httpURLConnection.setDoOutput(true); BufferedReader in = new BufferedReader( new InputStreamReader(httpURLConnection.getInputStream(),"UTF-8")); in.close(); } catch (Exception e) { Log.e("log_tag", "Error in http connection " + e.toString()); } return null; } } } Результат: 'log_tag: Error in http connection android.os.NetworkOnMainThreadException' Среда разработки: Android Studio 1.5.1 Спасибо за помощь!
Ответы
Ответ 1
AsyncTask нужно запускать методом execute(); , а вы запускаете всего лишьт его метод doInBackground
Комментариев нет:
Отправить комментарий