Fragment onActivityCreated被调用时

问题描述 投票:1回答:1

[在Google体系结构组件和LiveData之前,我没有注意onActivityCreated()回调。我在SOF和文档中也对此有所了解,但我仍然无法理解其行为。

来自SOF答案之一:

顾名思义,这是在Activity的onCreate()具有完成。

  • 在哪些条件下onActivityCreated() 被叫,以及在什么时候onActivityCreated() 未被叫

  • onCreateView()是否可能被调用,但onActivityCreated()没有被调用?

[在LiveData中附加onActivityCreated()个观察者,因此我想onActivityCreated()onCreateView()之间有显着差异?

尽管从官方Android文档看图似乎onActivityCreated()之后被称为[[always(就执行而言,不是顺序)并且没有区别?

这里有些令人困惑。

onCreateView()

android android-fragments android-lifecycle
1个回答
0
投票
是否可能调用了onCreateView()但未调用onActivityCreated()?

是,他们在enter image description here中使用FragmentPagerAdapter / FragmentTransaction.detach,这将导致视图被销毁,但片段仍然存在(停止但未销毁)。

在这种情况下,FragmentTransaction.attach运行.attach(),但不运行onCreateView

[将LiveData观察器附加到onActivityCreated()中是常见的做法,所以我想onActivityCreated()和onCreateView()之间会有显着差异?

实际上是一个

不良做法,应在onActivityCreated中完成,并提供onViewCreated作为生命周期所有者。

尽管从官方的Android文档看图似乎onActivityCreated()总是在onCreateView()之后调用,并且没有区别?

[它并不总是在getViewLifecycleOwner()之后被调用,实际上,它更多地被称为“在onCreateView之前,但是只有一次”。

onStart
© www.soinside.com 2019 - 2024. All rights reserved.