0

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;
                          }

                     }

以下は私が得ているエラーです: ここに画像の説明を入力

4

2 に答える 2

0

変更することで問題を解決しました

 xpp.setInput(getInputStream(url), "UTF_8"); to 
 xpp.setInput(url.openConnection().getInputStream(), "UTF_8");
于 2013-08-12T10:34:11.207 に答える