Возникла проблема: при обращении к 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() {
List
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
Спасибо за помощь!
Ответ
AsyncTask нужно запускать методом execute(); , а вы запускаете всего лишьт его метод doInBackground
Комментариев нет:
Отправить комментарий