안드로이드 Activity LifeCycle을 알고 싶다면 이곳을 참조하길 바란다.
# Fragment LifeCycle(프래그먼트 생명주기)
프래그먼트 생명주기는 액티비티와 비슷하다 하지만 onAttach(), onCreateView(), onActivityCreated(), onDestroyView(), onDetach() 5가지 다른 게 있다.
# 실행 순서
1. onAttach() : 프래그먼트가 액티비티와 연결될 때 호출된다.
아직 프래그먼트가 완벽하게 생성된 상태는 아니다.
2. onCreate() : 액티비티의 onCreate()와 역할이 비슷하다.
다만 액티비와 달리 view와 관련된 UI작업(ui바인딩과 같은 작업)을 할 수 없다.
초기화 작업을 여기서 실행하면 된다.
3. onCreateView() : 프래그먼트에서 UI를 그릴 때 호출되는 콜백이다.
Layout을 inflate 해서 반환해주고, view 객체를 얻을 수 있으므로 UI와 관련된 바인딩 작업을 실행하면 된다.
4. onActivityCreated() : 액티비티에서 onCreate() 실행이 끝난 후 호출된다.
액티비티와 프래그먼트의 뷰가 모두 생성되고, 연결된 상태이고, 뷰의 변경 작업이 가능하다.
5. onStart() : 액티비티와 같이 프래그먼트가 화면에 보이기 직전 빠르게 실행된다.
6. onResume() : 액티비티와 마찬가지로 이벤트가 발생하여 프래그먼트가 가려지기 전까지 이 상태가 유지된다.
7. onPause() : 부모 액티비티가 아닌 다른 액티비티가 위로 올라오거나, 다른 프래그먼트가 추가되는 경우 일시정지 상태로 들어간다.
UI 관련 처리를 정지하고, 중요한 데이터를 저장한다.
8. onStop() : 프래그먼트가 완전히 가려지는 경우 onPause()에 이어 onStop()까지 실행된다.
9. onDestroyView() : 프래그먼트와 관련된 View가 제거될 때 실행된다.
이 메서드가 호출된 이후 Fragment가 BackStack에서 돌아오면 onCreateView()가 호출된다.
10. onDestroy() : view가 제거된 후 프래그먼트가 완전히 소멸되기 전에 호출된다.
11. onDetach() : 프래그먼트가 완전히 소멸되고, 액티비티와의 연결도 끊어질 때 실행된다.
# 번외
프래그먼트를 사용하는 이유
- 프래그먼트가 액티비티 보다 상대적으로 가볍다.
- 유연한 UI/UX 구현
- Activity Stack에 Activity를 쌓아두기보다 Fragment BackStack에서 Fragment를 관리하는 게 메모리 관리에서도 효율도 챙기고 화면 전환 시에 Activity보다 더 순조롭다.
- 데이터 공유에도 용이하다.
참고 사이트
https://minchanyoun.tistory.com/category/Programming/Android%20%28Kotlin%29
https://jinee0717.tistory.com/44
'안드로이드 공부 노트' 카테고리의 다른 글
[Android] Context란? (0) | 2022.01.29 |
---|---|
Android Jetpack - 3편 (LiveData) MVVM 패턴을 이용한 사용법 Room + ViewBinding + LiveData 통합 (0) | 2022.01.27 |
Android Jetpack - 2편(View Binding) 예제를 이용한 사용법 (0) | 2022.01.22 |
Android Jetpack - 1편 (Room) 예제를 이용한 사용법 (0) | 2022.01.20 |
안드로이드 디자인패턴 - MVC, MVP, MVVM 패턴 (0) | 2022.01.14 |