Ответ
Метод setRetainInstance(true) позволяет сохранить фрагмент при изменении конфигурации (например, повороте экрана), не уничтожая его. Вместо этого фрагмент переподключается к новой активности.
Когда использовать:
- Для сохранения тяжелых объектов (например, загруженных данных или AsyncTask)
- Когда пересоздание фрагмента затратно
Ограничения:
- Работает только для фрагментов без UI (
add()безcommit()илиdetach()) - Не сохраняет View состояние
Пример:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
retainInstance = true
}
⚠️ Вместо этого сейчас чаще используют ViewModel + SavedStateHandle.