Sobes.tech
Junior — Middle

Come viene gestito il ciclo di vita di un frammento in Android durante un cambio di configurazione del dispositivo?

sobes.tech AI

Risposta dell'AI

При смене конфигурации устройства (например, поворот экрана) активность и её фрагменты по умолчанию уничтожаются и создаются заново. Жизненный цикл фрагмента при этом проходит следующие этапы:

  1. onPause() → onStop() → onDestroyView() → onDestroy() → onDetach() — фрагмент уничтожается вместе с активностью.
  2. После пересоздания активности создаётся новый экземпляр фрагмента, вызываются методы onAttach() → onCreate() → onCreateView() → onActivityCreated() → onStart() → onResume().

Чтобы сохранить состояние фрагмента при смене конфигурации, можно использовать методы onSaveInstanceState() для сохранения данных и восстанавливать их в onCreate() или onViewCreated(). Также можно использовать setRetainInstance(true), чтобы сохранить сам фрагмент при пересоздании активности, но этот метод устарел и не рекомендуется.

Для более гибкого управления часто применяют ViewModel, которая переживает смену конфигурации и хранит данные отдельно от жизненного цикла фрагмента.