gpt4 book ai didi

android - 旋转后,onCreate() Fragment 在 onCreate() FragmentActivity 之前被调用

转载 作者:IT王子 更新时间:2023-10-28 23:40:29 28 4
gpt4 key购买 nike

我正在使用 FragmentActivity 和 Fragments。

应用程序启动时:

FragmentActivity onCreate() <------
FragmentActivity onStart()
FragmentActivity onResume()
Fragment onAttach()
Fragment onCreate() <------
Fragment onCreateView()
Fragment onActivityCreated()
Fragment onStart()
Fragment onResume()

一切正常,FragmentActivity onCreate() 在 Fragment onCreate() 之前被调用。当我旋转时:

Fragment onPause()
FragmentActivity onPause()
Fragment onStop()
FragmentActivity onStop()
Fragment onDestroyView()
Fragment onDestroy()
Fragment onDetach()
FragmentActivity onDestroy()
---
Fragment onAttach()
Fragment onCreate() <----------
FragmentActivity onCreate() <---------
Fragment onCreateView()
Fragment onActivityCreated()
Fragment onStart()
FragmentActivity onStart()
FragmentActivity onResume()
Fragment onResume()

在 FragmentActivity onCreate() 之前调用 Fragment onCreate()。为什么不一致?

在 FragmentActivity onCreate() 中,我生成了一些数据,这些数据由 Fragment onCreate() 获取。由于这种奇怪的行为,我不得不将我的代码从 Fragment onCreate() 移动到 Fragment onCreateView() 以确保我的数据之前已经生成。

我是用 FragmentStatePagerAdapter 来保存 Fragment,可能是这个原因?

最佳答案

onActivityCreated() 之前,您不应指望有效的 Activity 。在 Fragment 的生命周期中调用。

Called when the fragment's activity has been created and this fragment's view hierarchy instantiated. It can be used to do final initialization once these pieces are in place, such as retrieving views or restoring state.

重建顺序不是线性的确切原因,我不能告诉你。允许每个组件以自己的速度重新启动而不是强制执行严格的命令可能更有效。例如,我希望我的 LoaderManager 尽早启动,我们将担心它的内容的布局稍后

(我喜欢好的图表。)

enter image description here

关于android - 旋转后,onCreate() Fragment 在 onCreate() FragmentActivity 之前被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14093438/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com