我正在使用 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()
为什么Fragment的onCreate()在FragmentActivity的onCreate()之前被调用?
在FragmentActivity的onCreate()中,我生成一些数据,而Fragment的onCreate()获取这些数据。因此,我不得不将我的代码从Fragment的onCreate()移动到Fragment的onCreateView()以确保我的数据已经被生成。
我正在使用FragmentStatePagerAdapter来保存Fragments,这可能是原因吗?