我已经创建了像这样的进度对话框
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
变量为真。
那么他们背后的原因是什么呢?如何再次打开相同的进度对话框?
答案 0 :(得分:8)
不要使用hide()而是使用dismiss()。这也可以防止泄露窗口错误
请参阅此link了解详情
答案 1 :(得分:3)
请尝试解除对话框。
pDialog.dismiss()