[Android] 5(3). 프래그먼트 (프래그먼트 생명주기 관리)

1 minute read


프래그먼트에 관한 포스팅은 3개로 나누어 진행합니다.

첫번째 포스팅: 프래그먼트 생성과 전환

두번째 포스팅: 프래그먼트로 값 전달하기

세번째 포스팅: 프래그먼트의 생명주기 관리


프래그먼트 (프래그먼트 생명주기 관리)

프래그먼트는 액티비티와 마찬가지로 화면에 보이는 것을 기준으로 생명주기 메서드를 가지는데, 생성에 관련된 5개와 소멸에 관련된 5개를 가지고 있습니다.


생성 주기 메서드


1. onAttach( )

프래그먼트 매니저를 통해 액티비티에 프래그먼트가 추가되고 commit되는 순간 호출됩니다.

파라미터로 전달되는 Context를 저장해 놓고 사용하거나 또는 Context로부터 상위 액티비티를 꺼내서 사용합니다.


2. onCreate( )

프래그먼트 인스턴스가 생성됨과 동시에 호출됩니다. 사용자 인터페이스 뷰와 관련된 것을 제외한 프래그먼트 자원(주로 변수)을 초기화할 때 사용합니다.


3. onCreateView( )

사용자 인터페이스와 관련된 뷰를 초기화하기 위해 사용됩니다.


4. onStart( )

프래그먼트가 새로 add 되거나 화면에서 사라졌다가 다시 나타나면 onCreateView( )는 호출되지 않고 onStart( )만 호출됩니다.

주로 화면 생성 후에 화면에 입력될 값을 초기화하는 용도로 사용합니다.


5. onResume( )

onStart( )와 같은 용도로 사용됩니다. 다른 점은 소멸 주기 메서드가 onPause( ) 상태에서 멈췄을 때 (현재 프래그먼트의 일부가 가려지지 않았을 때)는 onStart( )를 거치지 않고 onResume( )이 바로 호출된다는 점입니다.



소멸 주기 메서드


현재 프래그먼트 위로 새로운 프래그먼트가 add되거나 현재 프래그먼트를 제거하면 소멸 주기와 관련된 메서드가 순차적으로 호출됩니다.

1. onPause( )

현재 프래그먼트가 화면에서 사라지면 호출됩니다. 주로 동영상 플레이어를 일시정지 한다거나 현재 작업을 잠시 멈추는 용도로 사용됩니다.


2. onStop( )

onPause( )와 다른 점은 현재 프래그먼트가 화면에 일부분이라도 보이면 onStop( )은 호출되지 않습니다.


3. onDestroyView

뷰의 초기화를 해제하는 용도로 사용됩니다. 이 메서드가 호출된 후에 생성 주기 메서드인 onCreateView( )에서 인플레이터로 생성한 View가 모두 소멸됩니다.


4. onDestroy( )

액티비티에는 아직 남아있지만 프래그먼트 자체는 소멸됩니다. 프래그먼트에 연결된 모든 자원을 해제하는 용도로 사용됩니다.


5. onDeatch

액티비티에서 연결이 해제됩니다.

Categories:

Updated:

Leave a comment