Я использую FragmentActivity и фрагменты.
Когда приложение запускается:
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()
Фрагмент onCreate() вызывается перед FragmentActivity onCreate(). Почему это непоследовательно?
В FragmentActivity onCreate() я генерирую некоторые данные, которые получает Fragment onCreate(). Из-за этого странного поведения мне пришлось переместить свой код из Fragment onCreate() в Fragment onCreateView(), чтобы убедиться, что мои данные были сгенерированы раньше.
Я использую FragmentStatePagerAdapter для хранения фрагментов, может быть, в этом причина?