我已经通过
创建了一个进度对话框ProgressDialog progressDialog = null; // create instance variable of ProgressDialog
int dialogID = 1;
//to create progress dialog
protected Dialog onCreateDialog(int id) {
progressDialog = new ProgressDialog(context);
progressDialog.setMessage(message);
progressDialog.setIcon(android.R.id.icon);
return progressDialog;
}
// to show progressdialog
showDialog(dialogID);
要删除对话框,我可以使用以下三种方法中的任何一种
接近-1
if(progressDialog != null){
progressDialog.dismiss();
}
方法-2
if(progressDialog != null){
progressDialog.cancel();
}
方法-3
removeDialog(dialogID);
我发现第二种方法比第一种方法更有效。如果我必须使用多个progressdialog,则更容易使用方法-3。但是什么是摧毁progressdialog的最佳方法又如何?
答案 0 :(得分:7)
cancel();
优于dismiss()
,因为根据文档:
取消对话框。这与调用
dismiss()
基本相同,但它也会调用您的DialogInterface.OnCancelListener
(如果已注册)。
removeDialog()
已被弃用,这将是最糟糕的方式。
答案 1 :(得分:1)
我认为以下方式最好从屏幕中删除进度条:
if(progressDialog.isShowing())
{
progressDialog.dismiss();
}
答案 2 :(得分:0)
取决于你想要实现的目标。如果要每次使用新消息创建Processdialog,则需要使用onPrepareDialog()
方法或在显示的对话框中使用removeDialog()
方法。因为下次使用yourDialog.show()
时再次调用onCreate()
方法,如果您只是解除对话,则下次显示时不会调用它。每次都会调用onPrepareDialog()
。