Android 删除ProgressDialog的最佳方法是什么

Android 删除ProgressDialog的最佳方法是什么,android,Android,我已通过创建了一个进度对话框 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.s

我已通过创建了一个进度对话框

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会更容易。但销毁进度对话框的最佳方法是什么?如何销毁?

我认为下面的方法是从屏幕上取消进度条的最佳方法:

if(progressDialog.isShowing())
{
   progressDialog.dismiss();
}
cancel()
优于
discouse()
,因为根据文档:

取消对话框。这基本上与调用
disclease()
相同,但它也将调用您的
对话框接口.OnCancelListener
(如果已注册)


removeDialog()
已被弃用,因此这将是最糟糕的方式。

取决于您想要实现的目标。如果希望每次使用新消息创建Processdialog,则需要使用
onPrepareDialog()
方法,或者在显示的对话框上使用
removeDialog()
方法。因为下次使用
yourDialog.show()
时会再次调用
onCreate()
方法,如果您只是关闭对话框,下次显示时不会调用它<每次调用code>onPrepareDialog()


我发现有时Discouse方法会抛出badwindowtoken执行选项,因此建议放入try/catch子句。对于
progressDialog.setCancelable(false)
uncancelable对话框是否正确?谢谢