iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 5
1

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())


上一篇
{Day4} Android Architecture Component
下一篇
{Day6} LiveData
系列文
Kotlin Android Jetpack 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言