Lifecycles为组件的生命周期。Activity的生命周期为onCreate(),onStart(),onResume(),onPause(),onStop(),当组件激活后会执行onCreate(),onStart(),onResume(),当组件未激活时(切换至后台)会执行onStop()。onStop()时该组件不可见,可以理解为去到了另一个组件,且该状态会释放资源,极端情况下杀死进程且不执行onDestroy()。当一个Activiy跳转到另一个Activity时、dialog弹出时会调用onPause()。当Activity退出时,会执行onDestroy()
Lifecycle的使用
class LifeCycle:LifecycleObserver {
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
fun created(){
Log.d("TAG", "created: .....")
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
fun start(){
Log.d("TAG", "start: .....")
}
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
fun resume(){
Log.d("TAG", "resume: .....")
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
fun stop(){
Log.d("TAG", "stop: .....")
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
fun pause(){
Log.d("TAG", "pause: ......")
}
}
Activity中的调用
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val observer = LifeCycle()
lifecycle.addObserver(observer)
}
}