본문 바로가기
안드로이드 공부 노트

안드로이드 Fragment LifeCycle(프래그먼트 생명 주기)알아보기!

by 지게요 2022. 1. 23.
728x90
반응형

안드로이드 Activity LifeCycle을 알고 싶다면 이곳을 참조하길 바란다.

 

# Fragment LifeCycle(프래그먼트 생명주기)

출처 : https://jinee0717.tistory.com/44

프래그먼트 생명주기는 액티비티와 비슷하다 하지만 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
반응형