removeDialog()
与dismiss()
和dismissDialog()
有什么不同?因为我可以把它们放在一起没有任何问题。
在实现DialogInterface.OnClickListener
或AlertDialog.OnClickListener
时,有什么关系吗?
我找了很多东西,却找不到有用的东西。
编辑:我正在为Android2.3开发。
示例代码:
public final class OptionsPreference extends PreferenceActivity implements DialogInterface.OnClickListener
{
private AlertDialog noInternetDialog = null;
//...
@Override
protected void onPause()
{
if (this.noInternetDialog != null)
{
Log.d(LOG_TAG, "Destroying noInternetDialog...");
this.noInternetDialog.dismiss(); // X?
removeDialog(DIALOG_NOINTERNET); // X?
dismissDialog(DIALOG_NOINTERNET); // X?
this.noInternetDialog = null;
}
super.onPause();
}
@Override
protected final Dialog onCreateDialog(final int id)
{
switch (id)
{
case DIALOG_NOINTERNET:
{
final AlertDialog.Builder _builder = new AlertDialog.Builder(this).setIcon(android.R.drawable.ic_dialog_info).setMessage(R.string.str_nointernet);
_builder.setCancelable(false);
_builder.setPositiveButton(R.string.str_wifisettings, this);
_builder.setNeutralButton(R.string.str_ok, this);
this.noInternetDialog = _builder.create();
if (!isFinishing())
{
this.noInternetDialog.show();
}
return this.noInternetDialog;
}
// ...
}
发布于 2016-03-20 15:22:20
dismissDialog(int id)
:用指定的id关闭对话框。它只隐藏对话框,但仍然保留包含此对话框的活动的内部引用,以便在API 13中的future.Deprecated中恢复它。
removeDialog(int id)
:它还使用指定的id关闭对话框。这意味着它隐藏了特定的对话框,此外,它还通过活动清除了所有引用,因此不能在将来恢复。在API 13中被废弃。
dismiss()
:该方法对特定的对话框进行操作,因为它是dialog类的方法。它也驳回了对话。你必须拥有一个有效的对话框才能拒绝它,否则你会得到异常。
https://stackoverflow.com/questions/36120063
复制