В чем разница между вызовом startActivity и вызовами FragmentManager’a

«В чем разница между вызовом startActivity и вызовами FragmentManager’a» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

startActivity запускает новую активити, создавая новый стек (или добавляя в существующий). Это отдельный компонент с собственным жизненным циклом.

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

Пример:

// Запуск активити
startActivity(Intent(this, SecondActivity::class.java))

// Добавление фрагмента
supportFragmentManager.beginTransaction()
    .replace(R.id.container, MyFragment())
    .commit()

Ключевые отличия:

  • Активити — отдельный экран, фрагмент — часть экрана.
  • Активити тяжелее, фрагменты легче и гибче.
  • Фрагменты зависят от активити, активити независимы.