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对话框是否正确?谢谢