Ответ
Основные различия:
-
Activity управляет окном приложения, а Fragment - частью UI внутри Activity.
-
Основные методы жизненного цикла:
- Activity: onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy()
- Fragment: аналогичные методы + onAttach(), onCreateView(), onViewCreated(), onDestroyView()
-
Fragment зависит от Activity:
- При повороте экрана Activity уничтожается и создается заново, Fragment пересоздается вместе с ней
- Fragment может быть добавлен/удален динамически без пересоздания Activity
-
Пример обработки состояния:
// Activity
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
// Сохраняем данные
}
// Fragment
override fun onViewStateRestored(savedInstanceState: Bundle?) {
super.onViewStateRestored(savedInstanceState)
// Восстанавливаем данные
}