Сохраняет ли FragmentManager свое состояние

«Сохраняет ли FragmentManager свое состояние» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, FragmentManager сохраняет свое состояние автоматически при повороте экрана или пересоздании Activity. Это включает в себя стек фрагментов, их состояния и аргументы. Однако, для кастомных объектов внутри фрагмента нужно реализовать onSaveInstanceState().

Пример сохранения состояния во фрагменте:

override fun onSaveInstanceState(outState: Bundle) {
    super.onSaveInstanceState(outState)
    outState.putString("KEY", importantData)
}

Важно: FragmentManager не сохраняет:

  • Ссылки на фрагменты, созданные через new Fragment()
  • Состояние DialogFragment, если диалог показан во время уничтожения активити

Для работы с FragmentManager в onCreate() активити используйте:

supportFragmentManager.findFragmentByTag("TAG")