myDialog.dismiss() 和 myDialog.getDialog().dismiss() 有什么区别?

问题描述

正如我在标题中提到的

这个..

public void dismissDialog(MyDialog dialog){
    dialog.dismiss();
}

还有这个..

public void dismissDialog(MyDialog dialog){
    dialog.getDialog().dismiss();
}

我应该使用哪个?或者它们之间有什么区别?

编辑 1:MyDialog 是一个 DialogFragment

解决方法

来自Documentation

公共无效解雇()

关闭片段及其对话框。如果片段被添加到 后退堆栈,直到并包括此条目的所有后退堆栈状态都将 被弹出。否则,将提交一个新的事务来删除 片段。

所以 dismiss() 方法不仅关闭对话框,还对流程中涉及的片段事务进行管理。但是 dialog.getDialog().dismiss() 只会关闭对话框。

关闭DialogFragment的正确方法是使用dismiss()。