我已经阅读了几个stackoverflow.com的答案,但仍然没有看到在简单的AlertDialog上使用DialogFragment的优势。显然,我有两个策略:
a)使用AlertDialog.Builder配置AlertDialog,.create(),然后在我的Activity(在某个按钮处理程序中)中配置.show(),或者
b)子类DialogFragment,在onCreateDialog()中编写相同的AlertDialog构建代码(除了我只返回.create(),然后,在我的Activity中,实例化一个DialogFragment,并显示它。
输出看起来一样。
无论哪种方式,我不使用已弃用的代码 - 我使用.show()同时使用AlertDialog或DialogFragment。当我去另一个尺寸的设备时,这是优势吗?或者重点是什么......
感谢您的任何见解,
迈克尔
答案 0 :(得分:24)
DialogFragment为您处理许多生命周期管理案例,包括配置更改(例如屏幕旋转)和状态恢复(如果您的应用程序的进程在后台被终止并且用户稍后返回它)。如果你没有使用DialogFragment,你需要以另一种方式处理这样的情况。
答案 1 :(得分:0)
除了@adamp所说的,由于DialogFragment
正在获得自己的生命周期回调,它将负责其生命周期,因此您的活动将不负责告诉它该做什么。
例如,当活动结束时,您的活动应该告诉对话框dimiss()
,否则您会在logcat中看到它有leaked the window
错误。