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의 생명주기 다이어그램이다.

  • 프래그먼트는 액티비티를 대신해 작동하므로 프래그먼트 상태는 액티비티의 상태를 반영해야한다.
  • 따라서 프래그먼트는 액티비티의 작업을 처리하기 위해 액티비티와 일치하는 생명주기 함수가 필요하다.

 

액티비티와 생명주기가 다른 점

  • Fragment 생명주기 함수는 안드로이드 운영체제가 아닌 호스팅 액티비티의 FragmentManager가 호출한다.
  • Fragment는 Activity가 내부적으로 처리해서 안드로이드 운영체제는 Activity가 사용하는 Fragment에 관해 알지 못한다.
  • Activity는 정지가 되면 운영체제에서 관리하는 Activity의 백 스택에 들어가지만, Fragment는 이를 제거하는 트랜잭션에서 addToBackStack()을 호출하여 인스턴스를 저장하라고 명시적으로 요청할 경우에만 액티비티에서 관리하는 백스택으로 들어간다.

 

반응형