DialogFragment 的生命周期是什么?

29

通过在谷歌上搜索,我找不到关于 android.support.v4.app.DialogFragment 正确的生命周期。我需要这个来实现一些功能。我们知道 DialogFragment 有一些与 Dialog 相同的方法。

DialogFragment 扩展了 Fragment,因此其生命周期与 Fragment 相同。但是其他 DialogFragment 的方法呢?

以下是 Fragment 的生命周期。能否提供一个 DialogFragment 的生命周期图?

enter image description here


这里是官方文档。https://developer.android.com/reference/android/app/DialogFragment#Lifecycle - Umair
这可能会对您有所帮助 https://developer.android.com/reference/android/app/DialogFragment#Lifecycle - AskNilesh
@NileshRathod和Umair,我在发布问题之前也检查了这个。请告诉我,你们从这份文档中得到了满意的答案吗? - Khemraj Sharma
1
@Khemraj的DialogFragment生命周期与Fragment类似。 - Umair
3个回答

60

DialogFragment 的生命周期类似于 fragment:。为了测试自己,在每个重写的 dialogFragment 方法中放入日志,然后运行代码,您将了解 dialogFragment 的工作方式。

onAttach
onCreate
onCreateDialog
onCreateView
onActivityCreated
onStart
onResume

至于结束或销毁dialogFragment,其生命周期如下:

onPause
onStop
onDestroyView
onDestroy
onDetach

我相信这种方法也会帮助你了解生命周期

@NonNull
@Override
public Lifecycle getLifecycle() {
    return super.getLifecycle();
}

谢谢,我也可以通过创建日志来检查生命周期,但我发了个问题。因为stackoverflow应该是一个好的问题收集库。您还应该添加onStop、onDestroy等内容,以使答案更好。 - Khemraj Sharma
@Khemraj 是的,它应该是这样的,dialogFragment 就像一个 fragment 一样,因为如果你仔细查看文档,你会发现 dialogFragment 扩展了实现回调的 Fragment。祝编码愉快 :) - Umair
可以理解,我在问题中提到了DialogFragment扩展了Fragment。但是我不知道onCreateDialog的顺序。 - Khemraj Sharma
3
这不是真的。onCreateDialog 不保证在 onStart/onResume 之前被调用。基本上,它不是“真正”的生命周期的一部分。 - Farid

6

2
DialogFragment会进行各种操作来保持片段的生命周期,而不是由对话框控制。请注意,对话框通常是独立的实体--它们是自己的窗口,接收自己的输入事件,并且通常决定何时消失(通过接收后退键事件或用户单击按钮)。
来源: https://developer.android.com/reference/android/app/DialogFragment#lifecycle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接