Kotlin : Fragment의 생명주기
2023. 2. 5. 22:39ㆍ[Android APP] feat. Kotlin/Kotlin 공부
1. Fragment의 생명주기
- Fragment의 생명주기는 Activity의 생명주기와 유사하다.
- Fragment의 생명주기는 중단(Stopped), 일시 중지(Paused), 실행 재개(Resumed) 상태를 가지며, 상태가 전환될 때 필요한 일을 처리하기 위해 오버라이드할 수 있는 함수들도 갖는다.
2. 프래그먼트에서 최소한으로 구현해야 하는 3개의 생명 주기 메서드
- onCreate()
- 프래그먼트를 생성할 때 호출.
- 프래그먼트가 일시정지 혹은 중단 후 재개되었을 때 유지하고 있어야 하는 것을 초기화한다.
- onCreateView()
- 프래그먼트가 자신의 인터페이스를 처음 그리기 위해 호출.
- View를 반환해야 한다. 이 메서드는 프래그먼트의 레이아웃 루트이기 때문에 UI를 제공하지 않는 경우에는 null을 반환한다.
- onPause()
- 사용자가 프래그먼트를 떠나면 첫번 째로 이 메서드를 호출한다.
- 사용자가 돌아오지 않을 수도 있으므로 여기에 현재 사용자 세션을 넘어 지속되어야 하는 변경사항을 저장한다.
Fragment 생명주기에 대한 사진
- 프래그먼트는 액티비티를 대신해 작동하므로 프래그먼트 상태는 액티비티의 상태를 반영해야한다.
- 따라서 프래그먼트는 액티비티의 작업을 처리하기 위해 액티비티와 일치하는 생명주기 함수가 필요하다.
액티비티와 생명주기가 다른 점
- Fragment 생명주기 함수는 안드로이드 운영체제가 아닌 호스팅 액티비티의 FragmentManager가 호출한다.
- Fragment는 Activity가 내부적으로 처리해서 안드로이드 운영체제는 Activity가 사용하는 Fragment에 관해 알지 못한다.
- Activity는 정지가 되면 운영체제에서 관리하는 Activity의 백 스택에 들어가지만, Fragment는 이를 제거하는 트랜잭션에서 addToBackStack()을 호출하여 인스턴스를 저장하라고 명시적으로 요청할 경우에만 액티비티에서 관리하는 백스택으로 들어간다.
반응형
'[Android APP] feat. Kotlin > Kotlin 공부' 카테고리의 다른 글
Kotlin : 명시적 인텐트(Explicit Intent), 암시적 인텐트(Implicit Intent) (0) | 2023.02.27 |
---|---|
Kotlin : Lottie Library(애니메이션 적용) (0) | 2023.02.22 |
Kotlin : ImageView 이미지 확대, 축소, 회전 기능 (0) | 2023.02.02 |
Kotlin : Thread, Handler (0) | 2023.02.02 |
Android : Kotlin Retrofit 동기 처리 (0) | 2022.11.02 |