Developing Myself Everyday
article thumbnail

프래그먼트는 항상 액티비티 내에서 호스팅되어야 하며 해당 프래그먼트의 수명 주기는 호스트 액티비티의 수명 주기에 직접적으로 영향을 받는다. 예를 들어 액티비티가 일시정지되는 경우, 그 안의 모든 프래그먼트도 일시정지되며 액티비티가 소멸되면 모든 프래그먼트도 마찬가지로 소멸된다. 그러나 액티비티가 실행 중인 동안에는 각 프래그먼트를 추가 또는 제거하는 등 개별적으로 조작할 수 있다.


 프래그먼트 생명주기

 

기본적으로 프래그먼트는 액티비티에 안에서 호스팅된다. 그래서 프래그먼트의 수명 주기를 관리하는 것은 액티비티의 수명 주기를 관리하는 것과 매우 비슷하다.

 

💬 액티비티 수명 주기와의 조화

프래그먼트가 있는 액티비티의 수명 주기는 해당 프래그먼트의 수명 주기에 직접적인 영향을 미친다. 따라서 액티비티에 대한 각 수명 주기 콜백이 각 프래그먼트에 대한 비슷한 콜백을 발생시킨다. 예를 들어 액티비티가 onPause()를 받으면, 해당 액티비티 내의 각 프래그먼트가 onPause()를 받는다.

하지만 프래그먼트에는 프래그먼트의 UI를 빌드하고 소멸시키는 등의 같은 작업을 수행하기 위해 액티비티와의 고유한 상호작용을 처리하는 몇 가지 수명 주기 콜백이 더 있다. 이러한 추가 콜백 메서드는 다음과 같다.

 

 

 onAttach()

onAttach()는 프래그먼트가 액티비티와 연결되어 있었던 경우 호출된다. 여기에 Activity가 전달된다.

 

 

 

 onCreateView()

onCreateView()는 프래그먼트와 연결된 뷰 계층을 생성하기 위해 호출된다.

 

 

 

 onActivityCreated()

onActivityCreated()는 액티비티의 onCreate() 메서드가 반환할 때 호출된다.

 

 

 

 onDestroyView()

onDestroyView()는 프래그먼트와 연결된 뷰 계층이 제거되는 중일 때 호출된다.

 

 

 

 onDetach()

onDetach() 프래그먼트가 액티비티와 연결이 끊어지는 중일 때 호출된다.

 

 

 

액티비티 수명 주기가 프래그먼트 수명 주기에 미치는 영향

 

Reference

 

프래그먼트  |  Android 개발자  |  Android Developers

A Fragment represents a behavior or a portion of user interface in an Activity. You can combine multiple fragments in a single activity to build a multi-pane UI and reuse a fragment in multiple activities. You can think of a fragment as a modular section

developer.android.com

 

profile

Developing Myself Everyday

@배준형

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!