Есть ли гарантия что вызовется кастомный конструктор фрагмента при изменении конфигурации

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

Ответ

Нет, кастомный конструктор фрагмента не вызывается при изменении конфигурации (например, повороте экрана). Android воссоздает фрагмент через стандартный конструктор без параметров. Для сохранения состояния используйте onSaveInstanceState() и arguments Bundle.

Пример:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    val myArg = arguments?.getString("MY_ARG") ?: ""
    // Восстанавливаем состояние
}

Лучшая практика - передавать параметры через setArguments():

fun newInstance(param: String) = MyFragment().apply {
    arguments = bundleOf("MY_ARG" to param)
}

Также можно использовать ViewModel для хранения данных.