在发出HTTP请求时不显示ProgressDialog

时间:2013-08-12 01:18:05

标签: android progressdialog

我想在http连接请求时显示ProgressDialog。

有请求方法。

protected Result request(String urlStr, String postData) {
    ProgressDialog dialog = ProgressDialog.show(activity, "", "Loading...",true);
    Result result = new Result();
    String message = "";
    try {
        message = HttpRequest.postURL(urlStr, postData);
        result = new Result(message);
    } catch (Exception e) {
        Log.e(TAG,"Failed to request data from " + urlStr + "\n" + e.getMessage());
    }
    dialog.dismiss();
    return result;
}

但是当这个方法运行时。 ProgressDialog没有显示。 如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

您需要致电dialog.show()

  

启动对话框并在屏幕上显示。窗户放在   应用层和不透明。请注意,您不应该覆盖它   而是在显示对话框时进行初始化的方法   在onStart()中实现它。

此外,我建议您在AsyncTask班级doInBackground()中执行此操作 在onPreExecute()中,显示ProgressDialog并在onPostExecute()中将其解除。

答案 1 :(得分:0)

protected Result request(String urlStr, String postData) {
    ProgressDialog dialog = ProgressDialog.show(activity, "", "Loading...",true);
    Result result = new Result();
    String message = "";
    try {
        message = HttpRequest.postURL(urlStr, postData);
        result = new Result(message);
    } catch (Exception e) {
        Log.e(TAG,"Failed to request data from " + urlStr + "\n" + e.getMessage());
    }
    dialog.show();
    return result;
}

不要忘记调用dialog.dismiss();带按钮

答案 2 :(得分:0)

进度对话框没有显示的原因有很多,但在您的情况下,我猜是因为您传递了错误的Context以显示ProgessDialog,请检查您的Activity上下文。请确保使用正确的Context或仅将其更改为ApplicationContext

ProgressDialog dialog = ProgressDialog.show(activity, "", "Loading...",true);

选中此行,尤其是activity。希望这会有所帮助。