Можете объяснить различия между методами onDestroyView и onDestroy в жизненном цикле Fragment?

Метод onDestroyView() вызывается, когда представление (View) фрагмента уничтожается, но сам фрагмент ещё существует.

Короткий ответ

Что ответить на собеседовании

Метод onDestroyView() вызывается, когда представление (View) фрагмента уничтожается, но сам фрагмент ещё существует. Это происходит, например, при переходе между фрагментами, когда нужно освободить ресурсы, связанные с UI, но сохранить состояние фрагмента.

Подробный разбор

Ответ с пояснениями

Метод onDestroyView() вызывается, когда представление (View) фрагмента уничтожается, но сам фрагмент ещё существует. Это происходит, например, при переходе между фрагментами, когда нужно освободить ресурсы, связанные с UI, но сохранить состояние фрагмента.

Метод onDestroy() вызывается, когда фрагмент полностью уничтожается и удаляется из памяти. Здесь нужно освобождать все оставшиеся ресурсы, связанные с фрагментом, включая те, что не связаны с UI.

Итого:

  • onDestroyView() — уничтожается только View, фрагмент жив.
  • onDestroy() — уничтожается сам фрагмент.

Пример:

override fun onDestroyView() {
    super.onDestroyView()
    // Очистка ссылок на View, чтобы избежать утечек памяти
    binding = null
}

override fun onDestroy() {
    super.onDestroy()
    // Освобождение других ресурсов, например, отмена корутин
}

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку