안드로이드

[안드로이드] Activity vs Fragment 차이

이손안나 2022. 10. 9. 23:26

💡 Activity? 

- 앱과 사용자의 상호작용을 위한 진입점 역할과 동시에 ui화면을 그리는 컨테이너 역할.

  • Activity 생명주기

- oncreate() : 필수적이며 시스템이 acitivity를 생성할 때 실행. 주로 데이터를 바인딩하거나 뷰모델을 연결.

- onstart() : activity 가 사용자에게 표시되는 단계이며 activity를 포그라운드에 보내 사용자와 상호작용할 준비.

- onresume() : activity는 포그라운드에 표시되며 앱이 사용자와 상호작용.

💡 Fragment?

- 독립적으로 존재할 수 있으며 activity에 종속되어 있다. 다양항 ui를 모듈화하여 재사용하고 화면 구성을 더욱 쉽게 할 수 있음.

 

  • Fragment 생명주기

- CREATED : 이미 onattach()를 통해 fragmentmanager에 추가된 상태이다. 데이터를 초기화, 복구하거나 저장된 상태를 불러옴.

- STARTED : fragment 안에 있는 view들을 사용할 수 있는 상태이다.

❗️ 비교

액티비티는 상대적으로 프래그먼트보다 무겁다. 그러나 프래그먼트는 단독으로 존재할 수 없으며 반드시 액티비티 내에서 호스팅 되어야 한다. 액티비티 스택보다 프래그먼트 백스택에서 관리하는것이 메모리 관리면에서도 효율적이며 화면전환도 프래그먼트가 더 순조롭게 가능하다.

- 액티비티는 메모리 영역을 공유하지 않아 많은 제약사항이 생기며 프래그먼트를 사용하면 뷰모델 또는 DI 사용으로 대체 가능.