Android App/Kotlin

Activity조각:프래그먼트(Fragment) 생명 주기

AppJinny 2022. 11. 15. 05:54

*Activity조각:프래그먼트(Fragment) 생명 주기

-액티비티와 마찬가지로 화면에 보이는 것을 기준으로 생명 주기 메서드를 가짐

-생성 관련 5개, 소멸 관련 5개 의 메서드가 있음

프래그먼트의 생명 주기

 

[생성 주기 메서드]

-프래그먼트를 포함한 액티비티가 화면에 계속 있는 상태 : onAttach() ~ onResume() 메서드 한 번에 호출

-상황에 따라 생명주기 메서드에 코드 넣어서 사용

 

*onAttach()

-변수를 만들어 생성자 호출할 때는 호출되지 않음

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

-Context  : 파라미터로 전달된 것을 저장해서 사용하거나 Context로부터 상위 액티비티를 꺼내 사용

-onAttach()를 통해 넘어온 Context에서만 상위 액티비티를 꺼낼 수 있음

-API 23 이상부터는 파라미터로 Context 만 받을 수 있음

 

*onCreate()

-프래그먼트가 생성됨과 동시에 호출됨

-뷰와 관련된 것을 제외한 것들을(변수 등) 초기화 시 사용

 

*onCreateView()

-사용자 인터페이스와 관련되 뷰 초기화 시 사용 (바인딩 등)

 

*onStart()

-화면 생성 후에 화면에 입력될 값을 초기화 시 사용

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

 

*onResume()

-화면 생성 후에 화면에 입력될 값을 초기화 시 사용

-onStart()와 다른점 : 소멸주기 메서드가 onPause() 에서 멈췄을 때(프래그먼트 일부가 가려지지 않았을 때) onStart()를 거치지 않고 바로 호출됨

 

 

[소멸 주기 메서드]

-프래그먼트 위로 새 프레그먼트가 add되거나 현재 프래그먼트를 제거할 때 메서드 호출

 

*onPause()

-현재 프래그먼트가 화면에서 사라지면 호출

-동영상 플레이어 일시정지 또는 현재 작업을 잠시 멈출 때 사용

 

*onStop()

-현재 프래그먼트가 화면에서 완전히 사라지면 호출

-현재 프래그먼트가 일부분이라도 보이면 호출되지 않음

-현재 작업을 일시정지가 아닌 완전히 정지할 때 사용

 

*onDestroyView()

-onDestroyView()가 호출된 후 생성주기 메서드 onCreateView()에서 생성한 View가 모두 소멸됨

-뷰의 초기화를 해제할 때 사용

 

*onDestroy()

-프래그먼트가 액티비티에 남아는 있지만 그 자체는 소멸됨

-프래그먼트에 연결된 모든 자원을 해제할 때 사용

 

*onDetach()

-액티비티에서 연결이 해제됨

 

 


이 포스팅에 작성한 내용은 고돈호, ⌜이것이 안드로이드다⌟, 한빛미디어(주), 2022 에서 발췌하였습니다.