PDA

View Full Version : ارور NetworkOnMainThreadException



saeedhushmand
یک شنبه 31 فروردین 1393, 13:46 عصر
با عرض سلام
دوستان ارور زیر که تو این کد میده با چیه؟؟؟


ارور


NetworkOnMainThreadException

تیکه کدی که بعدش ارور رو میده





BufferedReader reader = new BufferedReader(new InputStreamReader(jc.getInputStream()));



کل کدمم اینه


try {

URL json = new URL("http://url.ir/Service.svc/GetPersonsJSON");
URLConnection jc = json.openConnection();

BufferedReader reader = new BufferedReader(new InputStreamReader(jc.getInputStream()));


String line = reader.readLine();


JSONObject jsonResponse = new JSONObject(line);
JSONArray jsonArray = jsonResponse.getJSONArray("estate");


for (int i = 0; i < jsonArray.length(); i++) {

JSONObject jObject = (JSONObject)jsonArray.get(i);
Toast.makeText(this,jObject.getString("BriefDescription"), Toast.LENGTH_LONG).show();
listItems.add(jObject.getString("BriefDescription"));
}
reader.close();

} catch(Exception e){
Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show();
}

Nevercom
یک شنبه 31 فروردین 1393, 13:59 عصر
از اندروید ۴ به بعد اجازه ندارید در ترد اصلی (Main Thread) کدهای مربوط به Network رو استفاده کنید.
باید کدهای مربوط به Networking رو در ترد دیگه ای اجرا کنید، مثلاً از AsyncTask استفاده کنید.

بصورت موقت می تونید با کد زیر به سیستم عامل بگید که میدونم اجازه ندارم اما به یه دلیل هاص ازت می خوام بهم اجازه بدی (دلیل خاص میشه تست، نه استفاده در برنامه ی نهایی):


final StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);

saeedhushmand
یک شنبه 31 فروردین 1393, 14:03 عصر
اگه میشه یکمم راهنماییم کن ;که چه جوری از AsyncTask استفاده کنم