[번역] 안드로이드 라이프사이클 모음 - (3) Fragment



:bulb: 원문 The Android Lifecycle cheat sheet — part III : Fragments을 번역한 글입니다.


(3) Fragment

상황 1. Activity와 Fragment의 시작과 종료

img

  • Activity의 onCreate는 Fragment의 Lifecycle 이전에 실행됨
  • onStartonResume 같이 병행으로 되어있는 것은 Activity가 먼저 실행될수도, Fragment가 먼저 실행될 수도 있음
    • EX) Activity의 onStart -> Fragment의 onStart -> Fragment의 onResume -> Activity의 onResume 순서로 실행될 수 있음
  • 각각의 실행 순서를 관리함으로써 Race Condition을 피할 수 있어야 함


상황 2. Activity와 Fragment의 회전

img

👉 상태 관리하기

Fragment는 Activity와 비슷하게 저장/복원된다.
Fragment에는 onRestoreInstanceState가 없다는 차이점이 있지만, onCreate, onCreateView, onActivityCreated에서는 Bundle을 사용할 수 있다.


상황 3. Activity와 retained Fragment의 회전

Fragment는 구성 변경 시에 같은 인스턴스를 사용할 수 있다. 이러한 상태를 Fragment가 retain 됐다고 한다.

img

Activity가 재생성된 후에는 같은 Fragment의 Instance가 사용되기 때문에, 회전 후에 해당 Fragment는 소멸되지도 새로 생성되지도 않는다. 다만 여전히 onActivityCreated에서 Bundle을 쓸 수 있다.

Retained Fragment는 구성 변경을 위한 데이터 저장을 위한 경우가 아니라면 사용하지 않는 것이 좋다.


비교

img



:bookmark: REFERENCE
The Android Lifecycle cheat sheet — part III : Fragments