363

、 和in 片段之间有什么区别onCreate(),它们各自的用途是什么?onCreateView()onActivityCreated()

4

3 回答 3

438

更新:

onActivityCreated()已从 API 级别 28 弃用。


创建():

a中的onCreate()方法在's之后但在 that 's之前调用。 在这种方法中,您可以分配变量、获取附加值以及不涉及视图层次结构的任何其他内容(即非图形初始化)。这是因为在's没有完成的时候可以调用这个方法,所以在这里尝试访问 View 层次结构可能会导致崩溃。FragmentActivityonAttachFragment()FragmentonCreateView()
IntentActivityonCreate()

onCreateView():

onCreate()调用了(在Fragment)之后,调用了Fragment's onCreateView()。您可以分配View变量并进行任何图形初始化View您应该从此方法返回 a ,这是主 UI 视图,但如果您Fragment不使用任何布局或图形,则可以返回null(如果您不覆盖,则默认情况下发生)。

onActivityCreated():

顾名思义,这是在's完成后调用的ActivityonCreate()。它被称为 after onCreateView(),主要用于最终初始化(例如,修改 UI 元素)。这已从 API 级别 28中弃用。


总而言之...
...它们都被调用Fragment但在不同的时间被调用。
首先onCreate()调用 ,用于进行任何非图形初始化。接下来,您可以分配和声明View要在onCreateView(). 之后,onActivityCreated()在一切都完成后,使用它来执行您想要执行的任何最终初始化。


如果你想查看官方的 Android 文档,可以在这里找到:

Stack Overflow 上也有一些略有不同但不太发达的问题/答案:

于 2015-09-18T16:25:55.103 回答
169

对于任何寻求简洁的图形答案的人:

在此处输入图像描述 https://hanaskuliah.wordpress.com/2015/12/07/android-5-development-part-6-fragment/


和,

在此处输入图像描述

于 2017-06-16T06:39:07.720 回答
13

onActivityCreated() - 已弃用

onActivityCreated()现在不推荐使用 Fragments版本 1.3.0-alpha02

现在不推荐使用 onActivityCreated() 方法。接触片段视图的代码应该在 onViewCreated() 中完成(在 onActivityCreated() 之前立即调用),其他初始化代码应该在 onCreate() 中。要在 Activity 的 onCreate() 完成时接收回调,应在 onAttach() 中在 Activity 的生命周期上注册 LifeCycleObserver,并在收到 onCreate() 回调后将其删除。

详细信息可以在这里找到

于 2020-03-28T21:39:57.830 回答