본문 바로가기
개발/Android

[Android] Fragment LifeCycle 쉽게 정리

by 1인용 놀이터 2025. 3. 2.
728x90
반응형

https://dev-playground.tistory.com/14?category=1207507

 

[Android] Fragment 정리

Fragment 1. 하나의 UI 내에서 독립적으로 동작하는 화면의 부분.   : 동작은 독립적으로 관리 되지만 프레그먼트 자체는 독립적일 수 없음   : Activity나 다른 프레그먼트에 종속되어 있

dev-playground.tistory.com

 

 

Fragment LifeCycle

 

안드로이드의 Fragment Lifecycle(프래그먼트 생명주기) 는 액티비티의 생명주기와 비슷하지만, 액티비티 안에서 동작하며 독립적인 생명주기를 가진다는 점이 특징이 있다
쉽게 말하면 프래그먼트는 액티비티의 하위 구성 요소로, 액티비티의 상태 변화에 따라 함께 변한다.

 

프래그먼트 생명주기 단계

1) 생성(Create)

  • onAttach(): 프래그먼트가 액티비티에 붙을 때 호출됨.
  • onCreate(): 프래그먼트가 처음 생성될 때 호출됨 (초기 설정 가능).

2) UI 생성 및 준비

  • onCreateView(): 프래그먼트의 UI 레이아웃을 생성하는 단계.
  • onViewCreated(): 뷰가 생성된 직후 호출되며 UI 초기화 작업 가능.
  • onActivityCreated(): 프래그먼트가 액티비티와 완전히 연결되었을 때 호출됨.

3) 활성 상태 (Started & Resumed)

  • onStart(): 프래그먼트가 사용자에게 보이기 시작.
  • onResume(): 프래그먼트가 활성 상태가 되어 사용자와 상호작용할 수 있음.

4) 비활성화 (Paused & Stopped)

  • onPause(): 다른 화면으로 이동하거나, 프래그먼트가 일부 가려질 때 호출됨.
  • onStop(): 프래그먼트가 완전히 화면에서 사라질 때 호출됨.

5) 종료(Destroy)

  • onDestroyView(): 뷰가 제거될 때 호출됨 (뷰 관련 리소스 해제).
  • onDestroy(): 프래그먼트가 완전히 제거되기 전 호출됨.
  • onDetach(): 프래그먼트가 액티비티에서 완전히 분리될 때 호출됨.

생명주기 흐름 예제

📌 예제 상황: 앱에서 프래그먼트를 추가하고 제거할 때 생명주기가 어떻게 동작하는지 살펴보자.

1. 프래그먼트가 추가될 때

 : onAttach() → onCreate() → onCreateView() → onViewCreated() → onActivityCreated() → onStart() → onResume()

2. 프래그먼트가 백그라운드로 갈 때 (예: 다른 화면으로 이동)

 : onPause() → onStop()

3. 프래그먼트가 제거될 때

 : onDestroyView() → onDestroy() → onDetach()

 

추가 팁

Fragment는 동적으로 추가/제거 가능
→ FragmentTransaction을 사용해서 add(), replace(), remove()로 관리 가능

뷰가 사라질 때만 제거하고 싶다면 onDestroyView()를 활용
→ ViewPager나 Navigation Component에서 프래그먼트를 재사용할 때 유용

액티비티의 생명주기에 따라 프래그먼트도 영향을 받음
액티비티가 onDestroy() 되면, 프래그먼트도 같이 제거됨

 

728x90
반응형