Ответ
Single Activity — это архитектурный подход, при котором приложение использует только одну Activity, а навигация и UI управляются через Fragments, Jetpack Navigation или Compose.
Преимущества:
- Упрощает управление жизненным циклом
- Уменьшает накладные расходы на создание/уничтожение Activity
- Позволяет гибко управлять UI через FragmentManager
Пример с Navigation Component:
// MainActivity.kt
navController = findNavController(R.id.nav_host_fragment)
NavigationUI.setupActionBarWithNavController(this, navController)
// nav_graph.xml
<navigation>
<fragment android:id="@+id/homeFragment" ... />
<fragment android:id="@+id/detailsFragment" ... />
</navigation>
Недостатки:
- Сложность при глубокой навигации
- Ограничения в кастомизации переходов (по сравнению с Activity)