앱 UI의 재사용 가능한 부분을 나타내고, 자체 레이아웃 정의 및 관리, 자체 수명 주기를 보유함.
단독으로는 실행이 불가하고 activity나 다른 프래그먼트에서 호스팅 되어야 한다.
1. onAttach()
액티비티에서 프래그먼트 추가 시 호출
인자로 context가 주어진다.
2. onCreate()
프래그먼트가 생성될 때 호출되는 메서드. 액티비티에서 bundle로 데이터가 넘어온다.
UI에 관련된 작업 수행 불가 Ex) View, ViewGroup의 UI 바인딩 등
UI 관련 작업 외 변수 초기화 등의 작업 가능
3. onCreateView()
UI 관련 작업 수행 가능.
View와 관련된 객체를 초기화 할 수 있음.
4. onViewCreated()
onCreateView()를 통해 반환된 뷰 객체는 onViewCreated()의 인자로 전달된다.
View의 초기값 설정, LiveData 옵저빙, RecyclerView, ViewPager2에 사용될
Adapter 할당은 이 메서드에서 해주는 것이 적절함
5. onViewStateRestored()
프래그먼트의 뷰들이 모두 생성된 이후에 실행.
View Lifecycle 상태 : INITIALIZED -> CREATED
6. onStart()
프래그먼트가 사용자에게 보여질 수 있을 때 호출 (액티비티와 유사)
View lifecycle 상태 : CREATED → STARTED
7. onResume()
프래그먼트와 사용자가 상호작용할 수 있는 상태일 때 호출.
Fragment가 보이는 상태에서 모든 Animator와 Transition 효과가 종료되고,
프래그먼트와 사용자가 상호작용 할 수 있을 때 onResume Callback
View Lifecycle 상태 : STARTED -> RESUMED
8. onPause()
프래그먼트가 visible일 때 호출.
View Lifecycle 상태 : RESUMED -> STARTED
9. onStop()
프래그먼트가 화면에 보이지 않을 때 호출.
부모 액티비티, 프래그먼트가 중단될 때, 상태가 저장될 때 호출.
View와 Lifecycle 상태 : STARTED → CREATED
10. onDestroyView()
모든 exit animation, transaction이 완료되고 Fragment가 화면으로부터 벗어났을 경우 호출.
가비지 컬렉터에 의해 수거될 수 있도록 Fragment View에 대한 모든 참조가 제거되어야 한다.
View Lifecycle 상태 : CREATED -> DESTROYED
11. onDestroy()
Fragment가 제거되거나, FragmentManager가 destroy 됐을 경우, 호출.
생명주기의 끝을 알림.