개발하슈

[android] fragment 생명주기 본문

android

[android] fragment 생명주기

하슈타인 2021. 12. 10. 07:48

onAttach()

Fragment 가 Activity에 attach 될 때 호출된다.

호출될 때 context 가 인자로 주어진다.

 

onCreate()

Activity와 마찬가지로 초기화해야하는 리소스들을 여기서 초기화한다.

프래그먼트를 생성하면서 넘겨준 값이 있으면 여기서 변수에 넣어준다.

UI 초기화 불가능

onCreateView()

레이아웃을 inflate 하는 곳이다. View객체를 얻을수 있으므로 ui 관련 바인딩 작업을 실행하면 된다

프래그먼트가 백스택에서 되돌아오는 지점

onActivityCreated()

Fragment 에서 onCreateView() , Activity에서 onCreate() 호출되고 나서 호출되는 메소드

액티비티와 프래그먼트 모두 뷰가 생성된 상태

View변경작업 가능

onStart()

액티비티에서의 역할과 비슷

유저에게 fragment 가 보이도록 해준다

onResume()

유저에게 Fragment 가 보여지고, 상호작용 가능한 시점

onPause()

부모 액티비티가 아닌 다른 액티비티가 foreground 이거나 

다른 Fragement 가 add되는 경우 호출되고 백스택으로 들어간다

ui 관련 처리를 정지하고, 중요한 데이터를 저장한다

onStop()

부모 액티비티가 아닌 다른액티비티가 화면을 완전히 가리게 되면 호출

시스템에서 onStateInstance() 를 호출하여 ui 상태를 저장하므로 activity를 다시 띄우면 이전상태가 그대로 보여짐

onDestroyView()

Fragment관련된 View 가 제거될 때 호출

 

onDestroy()

view가 제거된 후 Fragment 가 소멸되기전 호출

onDetach()

Fragment 가 완전히 소멸되고, Activity 와의 연결도 끊어질 때 호출

 

액티비티와 프래그먼트의 수명 주기에서 가장 중대한 차이점은 해당되는 백 스택에 저장되는 방법에 있습니다. 기본적으로 액티비티는 정지되면 시스템에서 관리하는 액티비티의 백 스택에 들어갑니다(작업 및 백 스택에서 설명하였듯이 사용자는 Back 버튼을 눌러서 액티비티로 돌아갈 수 있습니다). 하지만 프래그먼트는 이를 제거하는 트랜잭션에서 addToBackStack()을 호출하여 인스턴스를 저장하라고 명시적으로 요청할 경우에만 호스트 액티비티에서 관리하는 백 스택으로 들어갑니다.

https://developer.android.com/guide/components/fragments#Lifecycle

'android' 카테고리의 다른 글

[android] retrofit2 file upload 이미지 업로드  (1) 2021.06.01
[android] Retrofit2 post 예제  (0) 2021.05.28