4

我正在使用 HTTP GET/POST 从 Web 获取 XML 数据。现在我以简单的方式完成了它(即没有线程)。

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

但是我怎么知道从网络上获取 XML 的完成时间。(即睡眠时间应该是多少以及何时关闭进度条对话框

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

我认为这可以通过“ AsyncTask ”来完成,但不知道如何使用这个概念来解决这个问题。

那么我该怎么做呢?

4

1 回答 1

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

    }

}
于 2010-09-15T09:34:30.083 回答