Fragment Lifecycle

devvace ㅣ 2016. 8. 17. 13:57


Activity A와 B는 서로 다른 UI를 가지지만, 일부 UI가 같을 때, 같은 UI 부분을 공통 모듈로 빼고 싶을 때 Fragment를 사용한다.



State = created


onAttach()    :    Fragment가 Activity에 최초로 연결될 때 호출된다.


onCreate()    :    Fragment를 초기화하는 메소드


onCreateView()    :    Layout inflator 작업이 진행된다.


onActivityCreated()    :    Activity의 onCreate() UI 작업이 마무리된 후, Fragment가 Activity에 완벽히 연결된 상태.


State = started


onStart()    :    부모 Activity가 화면에 보이면 호출

State = Resumed

onResume()    :    부모 Activity가 유저 Input을 받을 준비가 됨

State = Paused

onPause()    :    부모 Activity가 화면에는 보이지만 포커스를 잃게되면 호출

State = Stopped

onStop()    :    부모 Activity가 더 이상 화면에 보이지 않을 때 호출된다.

State = Destroyed

onDestroyView()    :    onCreateView()에서 호출된 View들이 Activity에서 제거되면서 호출된다. 일반적으로 View리소스를 해제하는데 사용된다.

onDestroy()    :    onCreate()에 대응되는 함수, Fragment가 더 이상 유효하지 않을 때 호출, 일반적으로 Fragment 자체 리소스를 해제하는 용도로 사용된다.

onDetach()    :    Fragment가 더 이상 Activity에 연결되어 있지 않은 상황에서 호출, 일반적으로 부모 Activity에서 Fragment의 참조를 가지고 있다면 null로 바꿔주는 작업을 수행







그림 참고, http://stackoverflow.com/questions/22870210/which-method-is-being-called-after-popbackstack