0
json 배열에서 스피너를로드하기위한 비동기 작업이 있습니다. 하지만 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
문제가 해결되었습니다. –