Я хочу проанализировать Xml с сервера, но это займет много времени и, наконец, выдает исключение NetworkOnMainThreadException.
Я использую строгий режим, но он все еще вызывает исключение NetworkOnMainThreadException.
Обновление:
Я пытаюсь запустить приложение на эмуляторе, это исключение не показывают.
это исключение показывают, когда я запускаю приложение на реальном устройстве.
это мой код для разбора xml:
public class ParsingXML extends Thread{
//private Context ctx;
private int status;
private String raw_url;
Context mctx;
public DefaultHandler getMyExampleHandler() {
return myExampleHandler;
}
DefaultHandler myExampleHandler=null;
public ParsingXML(Context ctx , int status){
//this.ctx=ctx;
this.status=status;
this.mctx=ctx;
if(status==constant.GET_LIST_PRODUCT){
raw_url=constant.URL+"listBarang.php";
}
}
public ParsingXML(Context ctx,int status,String id){
this.status=status;
this.mctx=ctx;
if(status==constant.GET_DETAIL_PRODUCT){
raw_url=constant.URL+"detailBarang.php?id="+id;
}
}
public void parse(){
try {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
URL url = new URL(raw_url);
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
if(status==constant.GET_LIST_PRODUCT){
myExampleHandler = new ListProductHandler();
}
else if(status==constant.GET_DETAIL_PRODUCT){
myExampleHandler = new DetailProductHandler();
}
xr.setContentHandler(myExampleHandler);
xr.parse(new InputSource(url.openStream()));
} catch (Exception e) {
Toast.makeText(mctx, "Connection Error", Toast.LENGTH_LONG).show();
}
/* Display the TextView. */
}
}
кто-нибудь может мне помочь, пожалуйста ??
любая помощь очень ценится. :)