Lifecycles为组件的生命周期。Activity的生命周期为onCreate(),onStart(),onResume(),onPause(),onStop(),当组件激活后会执行onCreate(),onStart(),onResume(),当组件未激活时(切换至后台)会执行onStop()。onStop()时该组件不可见,可以理解为去到了另一个组件,且该状态会释放资源,极端情况下杀死进程且不执行onDestroy()。当一个Activiy跳转到另一个Activity时、dialog弹出时会调用onPause()。当Activity退出时,会执行onDestroy()![activity_lifecycle.png](https://cdn.nlark.com/yuque/0/2020/png/2412008/1598724742895-529644f0-795d-4f88-a0fd-c6d2f2626ddd.png#align=left&display=inline&height=663&margin=%5Bobject%20Object%5D&name=activity_lifecycle.png&originHeight=663&originWidth=513&size=45666&status=done&style=none&width=513)
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)
}
}