Progressdialog isshowing返回true,甚至称为hide

时间:2016-02-26 06:39:10

标签: android

我已经创建了像这样的进度对话框

public VolleyService(Context context, VolleyServiceCompletedListener listener){
    this.context = context;
    pDialog = new ProgressDialog(context);
    pDialog.setMessage("Loading...");
    pDialog.setCancelable(false);
    this.listener = listener;
}

并尝试使用此方法显示进度对话框。

private void showProgressDialog() {
    boolean isShowing = pDialog.isShowing();
    if (!isShowing)
        pDialog.show();
}

使用此方法隐藏对话框。

private void hideProgressDialog() {
    if (pDialog.isShowing()) {
        pDialog.hide();
    }
} 

即使在我调用pDialog.isShowing()之后,问题仍然是pDialog.hide()。当我从hide()看到android.app.Dialog.java方法时,他们没有将mShowing变量指定为false,但是当我致电show()时,他们分配了mShowing变量为真。

那么他们背后的原因是什么呢?如何再次打开相同的进度对话框?

2 个答案:

答案 0 :(得分:8)

不要使用hide()而是使用dismiss()。这也可以防止泄露窗口错误

请参阅此link了解详情

答案 1 :(得分:3)

请尝试解除对话框。

pDialog.dismiss()