public class LocalSearch extends ListActivity {
 Handler handler = new Handler();
 protected static final int DIALOG_PROGRESS = 1;
 protected static final int MAX_PROGRESS = 100;
 ProgressDialog mProgressDialog = null;
 ListView list;
 final ArrayList<Pension> m_pension = new ArrayList<Pension>();
 PensionAdapter m_adapter;
 public Dialog onCreateDialog(int id) {
  switch(id) {
  case DIALOG_PROGRESS:
   mProgressDialog = new ProgressDialog(LocalSearch.this);
   mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
   mProgressDialog.setMessage("NOW LOADING");
   mProgressDialog.setCancelable(true);
   mProgressDialog.setMax(MAX_PROGRESS);
   return mProgressDialog;
  }
  return null;
 }
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.local);
  Intent intent = getIntent();
  final String local = intent.getExtras().getString("local").toString();
  final String sido = intent.getExtras().getString("sido").toString();
  m_adapter = new PensionAdapter(this, R.layout.row, m_pension);
  showDialog(DIALOG_PROGRESS);
  mProgressDialog.setProgress(0);
  new Thread() {
   public void run() {
    try
    {   
     URL text = new URL("http://kr/parser.php");
     XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
     XmlPullParser parser = factory.newPullParser();
     parser.setInput(text.openStream(), "UTF-8");
     String uri = "";
     while (parser.getEventType() != XmlPullParser.END_DOCUMENT) {
      switch(parser.getEventType()){
      case XmlPullParser.START_DOCUMENT:
       break;
      case XmlPullParser.END_DOCUMENT:
       break;
      case XmlPullParser.TEXT:
       break;
      case XmlPullParser.START_TAG:
       if(parser.getName().equals("pension")){
        if(parser.getAttributeValue(2).equals(sido)){
         if(parser.getAttributeValue(3).contains(local)){
          uri = "http://kr/" + parser.getAttributeValue(1);
          Pension p1 = new Pension(parser.getAttributeValue(0), uri, parser.getAttributeValue(10), parser.getAttributeValue(2), parser.getAttributeValue(3));
          m_pension.add(p1);
          
         } 
        }
       }
       break;
      }
      parser.next();
     }
     mProgressDialog.setProgress(100);
     handler.post(new Runnable() {
      public void run() {
       viewGo();
       dismissDialog(DIALOG_PROGRESS);
       mProgressDialog.dismiss();
      }
     });
    }
    catch(Throwable t) {
     Toast.makeText(LocalSearch.this, "실패: " + t.toString(), Toast.LENGTH_LONG).show();
    }
   }
  }.start();  
 }
 public void viewGo() {
  list = (ListView)findViewById(android.R.id.list);
  list.setAdapter(m_adapter);
     }
  });
 }

 public void progressStatus(int total) {
  mProgressDialog.setProgress(total);
 }

 

이런식으로 되어 있는데..

while문안에서 어떻게 줘야 되는지를 모르겠네요 ㅠㅠ

파싱 완료시점을 기준으로 알아서 딱딱 나눠서 증가하게 하려면 어떻게 해야되는거죠?