У меня есть задача Async для получения массива json для загрузки spinner. Но в onPostExecute я получил Ошибка NetworkOnMainThreadException.В AsyncTask onPostExecute получена ошибка NetworkOnMainThreadException
// Ошибка здесь
while ((line = reader.readLine()) != null)
{
builder.append(line) ;
}
вот мой onPostExecute. ответ - ответ Http. Какая здесь ошибка?
protected void onPostExecute(String result) {
BufferedReader reader;
try {
reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
StringBuilder builder = new StringBuilder();
String line = null;
//Error in here
while ((line = reader.readLine()) != null)
{
builder.append(line) ;
}
JSONTokener tokener = new JSONTokener(builder.toString());
JSONArray finalResult = new JSONArray(tokener);
final String[] items = new String[finalResult.length()];
// looping through All Contacts
for(int i = 0; i < finalResult.length(); i++){
JSONObject c = finalResult.getJSONObject(i);
items[i]=c.getString("data_name");
}
ArrayAdapter<String> adapter = new ArrayAdapter<String> (activity, android.R.layout.simple_spinner_item, items);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spin.setAdapter(adapter);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
super.onPostExecute(result);
//activity.startActivity(new Intent(activity, wanted.class));
if (dialog != null)
dialog.dismiss();
}
Единственное, что я вижу которые должны быть в 'onPostExecute()', являются кодом «Adapter» и «Dialog». Все остальное должно быть в 'doInBackground()' – codeMagic
Не ** другое ** 'NetworkOnMainThreadException'! Пожалуйста, найдите, прежде чем задавать вопрос. Это происходит 10 раз в неделю. – Simon
ПРОБЛЕМА РЕШАЛА. –