Udacity Developing Android Apps with Kotlin 레슨4 Activity & Fragment Lifecycle 요약

Lesson 4: Activity & Fragment Lifecycle

Activity lifecycle

네모:state, 네모없는 텍스트: callback

액티비티가 생성(객체 생성)됐으면 initialized

액티비티가 보이면 started 상태 또는 resumed 상태

액티비티에 포커스가 있으면 resumed 상태

액티비티가 안 보이면 created

액티비티가 파괴됐으면 destroyed

Fragment lifecycle

onCreate에서 레이아웃을 inflate 하지 말고 onCreateView에서 inflate 하기

프래그먼트가 처음 그려질 때 activity를 참조하지 말고 onActivityCreated에서 참조하기

onAttach : 프래그먼트가 액티비티에 붙었을 때 딱 한 번만 호출됨

onActivityCreated : 액티비티의 onCreate가 반환된 직후에 호출됨. 액티비티가 이미 created 상태라도 호출됨.

onViewCreated에서 rootview를 써야 한다.

onStop : 액티비티의 onStop이 호출될 때 호출됨.

onDestroyView : 액티비티와 달리 off screen 될 때 호출됨.

onDestroy : 액티비티의 onDestroy가 호출될 때 호출됨.

프래그먼트 라이프사이클 medium 글 링크

ViewModel 라이프사이클 medium 글 링크

Lifecycle 라이브러리

어느 곳에서든 라이프사이클 상태를 확인할 수 있다.

액티비티와 프래그먼트는 lifecycleOwner 인터페이스가 구현돼있다.

Lifecycle 라이브러리는 Observer 패턴으로 만들어졌다. 라이프사이클 Observer를 상속하면 lifecycle owner를 구독할 수 있다.

라이프사이클 오너의 lifecycle 객체에 Observer 자신을 등록하고, Annotate를 사용해 라이프사이클 콜백을 선언한다.

Timber 로깅 라이브러리

로그에 자동으로 태그 생성!

궁금한 것

라이프사이클 옵저버를 라이프사이클 객체에 등록시킨 후 따로 등록해제해주지 않아도 되는 이유는? 라이프사이클 객체가 라이프사이클이 종료되는 시점에 알아서 해제시킬 수 있기 때문일까?