XmlPullParserFactory を使用してオンライン Xml を解析し、詳細をリストビューに表示しています。インターネットをチェックする条件を設定しましたが、データの取得に時間がかかってクラッシュする場合があります。私が使用しているコードは以下のとおりです。
private void runningABackProcess() {
Handler mHandler = new Handler(Looper.getMainLooper());
Runnable myRunnable = new Runnable() {
public void run() {
try{
//Thread.sleep(5000);
new DoSomeTask().execute();
}catch(Exception e){}
// myPd_ring.dismiss();
}
};
mHandler.post(myRunnable);
}
private class DoSomeTask extends AsyncTask<Void, Void, Void>
{
@Override
protected Void doInBackground(Void... arg0) {
try {
isInternetPresent = icd.isConnectingToInternet
if(isInternetPresent){
URL url = new URL("njhgjghjkjhkjl");
XmlPullParserFactory factory=XmlPullParserFactory.newInstance();
XmlPullParser xpp=factory.newPullParser();
xpp.setInput(getInputStream(url), "UTF_8");
int eventType=xpp.getEventType();
if(eventType!=XmlPullParser.END_DOCUMENT)
{
if(eventType==XmlPullParser.START_DOCUMENT)
{
while(eventType!=XmlPullParser.END_DOCUMENT )
{
xpp_name=xpp.getName();
if((xpp_name!=null) )
{
--------------------
-------------------------
}
}
}
}
と
public InputStream getInputStream(URL url) {
try {
InputStream str=null;
isInternetPresent=icd.isConnectingToInternet();
if(isInternetPresent)
{
str=url.openConnection().getInputStream();
if(str!= null)
{
return str;
}else{
new AlertDialogBox(getActivity()).show(getFragmentManager(),"MyDialog");
}
}else{
new AlertDialogBox(getActivity()).show(getFragmentManager(), "MyDialog");
}
return str;
//}
} catch (IOException e) {
return null;
}
}
以下は私が得ているエラーです: