我已经创建了这样的进度对话框
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()
仍返回true。当我从hide()
中看到android.app.Dialog.java
方法时,他们没有将mShowing
变量分配为false,但是当我调用show()
时,他们将mShowing
变量分配为true。那么,他们背后没有任何虚假的理由吗?以及如何再次打开相同的进度对话框?
最佳答案
不要使用hide(),而要使用dismiss()。这也将防止泄漏窗口错误
有关更多信息,请引用此link