Какие методы ЖЦ Fragment вызовутся при добавлении нового через метод replace

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

Ответ

При замене фрагмента через replace() вызываются следующие методы жизненного цикла:

  1. У старого фрагмента:
  • onPause()
  • onStop()
  • onDestroyView()
  • onDestroy()
  • onDetach()
  1. У нового фрагмента:
  • onAttach()
  • onCreate()
  • onCreateView()
  • onViewCreated()
  • onStart()
  • onResume()

Пример:

supportFragmentManager.beginTransaction()
    .replace(R.id.container, NewFragment())
    .commit()

Если добавить транзакцию в backstack, старый фрагмент остановится на onDestroyView(), а не уничтожится полностью.