Lifecycle
Lifecycle是為了解決記憶體流失,如果沒有釋放已經不再使用的的記憶體,最終過多的可用記憶體被分配掉會導致應用程式崩潰,讓開發者方便處理Activity和Fragment的生命周期。
Lifecycle:LiveData與ViewModel的核心。
LifecycleOwner:Activity和Fragment已實現LifecycleOwner,實現後有一個方法來添加觀察者。
lifecycle.addObserver(observer: LifecycleObserver)
LifecycleObserver:要觀察生命週期的類需要實現LifecycleObserver,用註解方式聲明該方法的生命週期。
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)    

實現LifecycleObserver,並添加生命週期註解(MyObserver.kt)
class MyObserver : LifecycleObserver {
    @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
    fun onCreate() {
        Log.d("GOGO", "onCreate")
    }
    @OnLifecycleEvent(Lifecycle.Event.ON_START)
    fun onStart() {
        Log.d("GOGO", "onStart")
    }
    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    fun onResume() {
        Log.d("GOGO", "onResume")
    }
    @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
    fun onPause() {
        Log.d("GOGO", "onPause")
    }
    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
    fun onStop() {
        Log.d("GOGO", "onStop")
    }
    @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
    fun onDestroy() {
        Log.d("GOGO", "onDestroy")
    }
}
MyObserver與生命週期綁定,執行到生命週期就會掉用Function(MainActivity.kt)
lifecycle.addObserver(MyObserver())
