我正在使用 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,也许这就是原因?