什么是删除ProgressDialog的最佳方法

时间:2011-11-29 11:20:40

标签: 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.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的最佳方法又如何?

3 个答案:

答案 0 :(得分:7)

cancel();优于dismiss(),因为根据文档:

  

取消对话框。这与调用dismiss()基本相同,但它也会调用您的DialogInterface.OnCancelListener(如果已注册)。

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

答案 1 :(得分:1)

我认为以下方式最好从屏幕中删除进度条:

if(progressDialog.isShowing())
{
   progressDialog.dismiss();
}

答案 2 :(得分:0)

取决于你想要实现的目标。如果要每次使用新消息创建Processdialog,则需要使用onPrepareDialog()方法或在显示的对话框中使用removeDialog()方法。因为下次使用yourDialog.show()时再次调用onCreate()方法,如果您只是解除对话,则下次显示时不会调用它。每次都会调用onPrepareDialog()

http://developer.android.com/guide/topics/ui/dialogs.html