Junior — Middle
Cum este gestionat ciclul de viață al unui fragment în Android atunci când se schimbă configurația dispozitivului?
sobes.tech AI
Răspuns de la AI
При смене конфигурации устройства (например, поворот экрана) активность и её фрагменты по умолчанию уничтожаются и создаются заново. Жизненный цикл фрагмента при этом проходит следующие этапы:
- onPause() → onStop() → onDestroyView() → onDestroy() → onDetach() — фрагмент уничтожается вместе с активностью.
- После пересоздания активности создаётся новый экземпляр фрагмента, вызываются методы onAttach() → onCreate() → onCreateView() → onActivityCreated() → onStart() → onResume().
Чтобы сохранить состояние фрагмента при смене конфигурации, можно использовать методы onSaveInstanceState() для сохранения данных и восстанавливать их в onCreate() или onViewCreated(). Также можно использовать setRetainInstance(true), чтобы сохранить сам фрагмент при пересоздании активности, но этот метод устарел и не рекомендуется.
Для более гибкого управления часто применяют ViewModel, которая переживает смену конфигурации и хранит данные отдельно от жизненного цикла фрагмента.