💡 Activity?
- 앱과 사용자의 상호작용을 위한 진입점 역할과 동시에 ui화면을 그리는 컨테이너 역할.
- Activity 생명주기
- oncreate() : 필수적이며 시스템이 acitivity를 생성할 때 실행. 주로 데이터를 바인딩하거나 뷰모델을 연결.
- onstart() : activity 가 사용자에게 표시되는 단계이며 activity를 포그라운드에 보내 사용자와 상호작용할 준비.
- onresume() : activity는 포그라운드에 표시되며 앱이 사용자와 상호작용.
💡 Fragment?
- 독립적으로 존재할 수 있으며 activity에 종속되어 있다. 다양항 ui를 모듈화하여 재사용하고 화면 구성을 더욱 쉽게 할 수 있음.
- Fragment 생명주기
- CREATED : 이미 onattach()를 통해 fragmentmanager에 추가된 상태이다. 데이터를 초기화, 복구하거나 저장된 상태를 불러옴.
- STARTED : fragment 안에 있는 view들을 사용할 수 있는 상태이다.
❗️ 비교
액티비티는 상대적으로 프래그먼트보다 무겁다. 그러나 프래그먼트는 단독으로 존재할 수 없으며 반드시 액티비티 내에서 호스팅 되어야 한다. 액티비티 스택보다 프래그먼트 백스택에서 관리하는것이 메모리 관리면에서도 효율적이며 화면전환도 프래그먼트가 더 순조롭게 가능하다.
- 액티비티는 메모리 영역을 공유하지 않아 많은 제약사항이 생기며 프래그먼트를 사용하면 뷰모델 또는 DI 사용으로 대체 가능.
'안드로이드' 카테고리의 다른 글
[안드로이드] 코루틴 - Scope, Dispacher (0) | 2022.10.12 |
---|---|
[코틀린] Paging3 (0) | 2022.10.10 |
[안드로이드] ViewBinding 사용시 주의점 (0) | 2022.10.07 |
[코틀린] Coroutine Flow 개념 정리 (0) | 2022.10.06 |
[안드로이드] LiveData vs Flow 차이점 (0) | 2022.10.05 |