代码之家  ›  专栏  ›  技术社区  ›  Paresh Mayani jeet

Android-从web获取XML数据(使用AsyncTask)和Progressbar相关问题

  •  4
  • Paresh Mayani jeet  · 技术社区  · 14 年前

    现在我已经用简单的方法做了。

    根据下面的链接,我尝试用带有线程的进度条对话框来实现它 http://www.ceveni.com/2009/09/sample-progress-bar-dialog-in-android.html

    但是我怎么知道从web上获取XML的完成时间呢。 睡眠时间应该是多少?何时关闭进度条对话框 )

    让我更清楚地了解我的问题=>在活动中,当用户单击“获取数据”按钮时, “进度条”对话框应该出现,并且只有在获取完成后才应该消失

    我认为这可以通过 异步任务 “但是我不知道如何用这个概念来解决这个问题。

    1 回复  |  直到 14 年前
        1
  •  5
  •   Damian Kołakowski    14 年前
        public  void onClick() {
            new FetchTask(context).execute(null);
        }
    
        public class FetchTask extends AsyncTask<Object, Object, Object > {
    
        private ProgressDialog dlg;
        private Context ctx;
    
        public FetchTask(Context context) {
            ctx = context;
        }
    
        @Override
        protected void onPreExecute() {
            dlg = new ProgressDialog(ctx);
            dlg.setMessage("Loading....");
            super.onPreExecute();
        }
    
        @Override
        protected void onPostExecute(Object result) {
            dlg.dismiss();
            if ( result instanceof Exception ) {
                // show error message
            } else {
                // display data
            }
            super.onPostExecute(result);
        }
    
        @Override
        protected Object doInBackground(Object... params) {
    
            try {
            // String rawData = doPost("yourUrl");
            // XMLTree data = yourParser.parse(rawData);
            // return data;
            } catch ( Exception e ) {
                return e;
            }
    
        }
    
    }