Activity조각:프래그먼트(Fragment) 생명 주기
*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 에서 발췌하였습니다.