В чем разница между Activity и Fragment

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

Ответ

Activity — это основной компонент UI, представляющий отдельный экран с собственным жизненным циклом. Управляется системой, может существовать независимо.

Fragment — это модульная часть UI, встроенная в Activity. Не имеет самостоятельного жизненного цикла, зависит от родительской Activity. Позволяет гибко комбинировать интерфейсы (например, для планшетов и телефонов).

Пример:

// Activity
class MainActivity : AppCompatActivity() {  
    override fun onCreate(savedInstanceState: Bundle?) {  
        super.onCreate(savedInstanceState)  
        setContentView(R.layout.activity_main)  
        supportFragmentManager.beginTransaction()  
            .replace(R.id.container, MyFragment())  
            .commit()  
    }  
}  

// Fragment  
class MyFragment : Fragment() {  
    override fun onCreateView(  
        inflater: LayoutInflater,  
        container: ViewGroup?,  
        savedInstanceState: Bundle?  
    ): View = inflater.inflate(R.layout.fragment_my, container, false)  
}  

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

  • Activity — самостоятельный экран, Fragment — часть экрана.
  • Activity управляется ОС, FragmentFragmentManager.
  • Fragment переиспользуется, Activity — нет.