使用DialogFragment优于简单的AlertDialog的优势?

时间:2013-02-10 22:29:11

标签: android android-dialogfragment

我已经阅读了几个stackoverflow.com的答案,但仍然没有看到在简单的AlertDialog上使用DialogFragment的优势。显然,我有两个策略:

a)使用AlertDialog.Builder配置AlertDialog,.create(),然后在我的Activity(在某个按钮处理程序中)中配置.show(),或者

b)子类DialogFragment,在onCreateDialog()中编写相同的AlertDialog构建代码(除了我只返回.create(),然后,在我的Activity中,实例化一个DialogFragment,并显示它。

输出看起来一样。

无论哪种方式,我使用已弃用的代码 - 我使用.show()同时使用AlertDialog或DialogFragment。当我去另一个尺寸的设备时,这是优势吗?或者重点是什么......

感谢您的任何见解,

迈克尔

2 个答案:

答案 0 :(得分:24)

DialogFragment为您处理许多生命周期管理案例,包括配置更改(例如屏幕旋转)和状态恢复(如果您的应用程序的进程在后台被终止并且用户稍后返回它)。如果你没有使用DialogFragment,你需要以另一种方式处理这样的情况。

答案 1 :(得分:0)

除了@adamp所说的,由于DialogFragment正在获得自己的生命周期回调,它将负责其生命周期,因此您的活动将不负责告诉它该做什么。

例如,当活动结束时,您的活动应该告诉对话框dimiss(),否则您会在logcat中看到它有leaked the window错误。