반응형
Lifecycles는 라이브러리 이름대로 생명주기 모니터링을 도우며 LifecycleOwner 와 LifecycleObserver로 구성되어 있다.
LifecycleOwner는 getLifecycle() 메서드에서 자신의 생명주기를 담은Lifecycle 객체를 반환하는 인터페이스이다.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// getLifecycle()
lifecycle.addObserver(LifeCycleLogger())
}
}
LifecycleObserver는 해당 메서드에 주석을 추가함으로써 구성 요소의 수명 주기 이벤트를 모니터링할 수 있는 클래스이다.
class LifeCycleLogger() : LifecycleObserver {
companion object {
const val TAG = "LifeCycleLogger"
}
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
fun onCreated() {
Log.d(TAG, "onCreated")
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
fun onStart() {
Log.d(TAG, "onResume")
}
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
fun onResume() {
Log.d(TAG, "onResume")
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
fun onPause() {
Log.d(TAG, "onPause")
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
fun onStop() {
Log.d(TAG, "onStop")
}
@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
fun onDestroy() {
Log.d(TAG, "onDestroy")
}
}
이를 모두 결합하면 수명 주기 이벤트를 모니터링하고 현재 수명 주기 상태를 쿼리할 수 있는 Lifecycle-aware 컴포넌츠를 생성할 수 있다.
추가로 LifeCycle은Enum Class 2가지인 Event, State가 있는데
Event
- Activity or Fragment에서 발생하는 생명주기 Event
- ON_ANY
- ON_CREATE
- ON_DESTROY
- ON_PAUSE
- ON_RESUME
- ON_START
- ON_STOP
State
- Activity or Fragment의 현재 상태
- CREATED : onCreate()의 Call 이후 or onStop()의 Call 이후
- DESTROYED : onDestory()이 Call 되기 직전
- INITIALIZED : onCreate()이 Call이 되지 않은 시점
- RESUMED : onResume()이 Call 된 시점
- STARTED : onStart() Call 이후 or onPause() Call 직전
로 되어있다.
반응형
'Android 개인공부' 카테고리의 다른 글
Repository Pattern (0) | 2022.07.21 |
---|---|
Android Custom Progress Dialog (0) | 2021.06.12 |
Kotlin? (0) | 2020.11.26 |
코틀린 let, with, apply, also, run (0) | 2020.10.12 |
FCM 푸쉬메시지 테스트 앱 (0) | 2020.08.27 |