기존 생명주기 : https://growing-software-engineer.tistory.com/18?category=1294392
Fragment Lifecycle

OnActivityCreated 가 사라진이유는 Activity와 Fragment의 생명주기의 영향을 줄이기 위해서라는데... 음....
1. onAttach() : Activity에 Fragment가 추가 되는 부분
2. onCreate() :
- Fragment 만 CREATED 가 된 상황입니다.
- 이 시점에는 아직 Fragment View 가 생성되지 않았기 때문에 Fragment 의 View 와 관련된 작업을 두기에 적절하지 않습니다.
3. onCreateView() :
- 레이아웃 inflate 담당
- savedInstanceState로 이전 상태에 대한 데이터 제공
- View와 관련된 객체를 초기화 할 수 있음
4. onViewCreated() :
- onCreateView()를 통해 반환된 View 객체는 onViewCreated()의 파라미터로 전달 된다.
- 이 때 Lifecycle이 INITIALIZED 상태로 업데이트가 됨
- 때문에 View의 초기값 설정, LiveData 옵저빙, RecyclerView, ViewPager2에 사용될 Adapter 세팅은 이 메소드에서 해주는 것이 적절함
5. onViewStateRestored() :
- 저장해둔 모든 state 값이 Fragment의 View의 계층 구조에 복원되었을 때 호출 ex) 체크박스 위젯이 현재 체크되어있는가
6. onStart() :
- 사용자에게 보여질 수 있을 때 호출
- Activity의 onStart() 시점과 유사
7. onResume() :
- 프래그먼트와 사용자가 상호작용 하는 부분
8. onPause() :
- Focusing이 완전히 떠나기 전에 불러지는 함수
- 잠깐만 불러오기 때문에 긴 작업 x
9. onStop() :
- Fragment가 더 이상 화면에 보여지지 않게 되면 onStop() 콜백 호출
- 부모 액티비티, 프래그먼트가 중단될 때, 상태가 저장될 때 호출
- API 28버전을 기점으로 onSaveInstanceState() 함수와 onStop() 함수 호출 순서가 달라짐, 따라서 onStop()이 FragmentTransaction을 안전하게 수행하는 마지막 지점이 됨

10. onDestroyView() :
- 모든 exit animation, transaction이 완료되고 Fragment가 화면으로부터 벗어났을 경우 호출
- 가비지 컬렉터에 의해 수거될 수 있도록 Fragment View에 대한 모든 참조가 제거되어야 함
- getViewLifecycleOwnerLiveData()
11. onDestroy() :
- Fragment가 제거되거나, FragmentManager가 destroy 됐을 경우, onDestroy() 콜백 함수가 호출
- Fragment Lifecycle의 끝을 알림
onDestroyView()가 호출되면 프래그먼트 객체 자체는 사라지지 않고 메모리에 남아있다. 반면 onDestroy()가 호출되면 프래그먼트 객체가 파괴된다.
12. onDetach() :
- 프래그먼트가 액티비티로부터 해제되어질 때 호출된다.
fragment 끼리의 이동시 생명주기 : 참고문헌
'안드로이드 자바 코틀린 기초 지식 > 안드로이드 기초 지식' 카테고리의 다른 글
Handler와 Looper (0) | 2023.02.27 |
---|---|
Intent (인텐트) 와 Bundle (0) | 2023.02.27 |
Activity LifeCycle ( 생명주기) (0) | 2023.02.27 |
ANR (Application Not Responding) (0) | 2023.02.27 |
Activity와 Fragment (0) | 2023.02.26 |