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的使用

  1. class LifeCycle:LifecycleObserver {
  2. @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
  3. fun created(){
  4. Log.d("TAG", "created: .....")
  5. }
  6. @OnLifecycleEvent(Lifecycle.Event.ON_START)
  7. fun start(){
  8. Log.d("TAG", "start: .....")
  9. }
  10. @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
  11. fun resume(){
  12. Log.d("TAG", "resume: .....")
  13. }
  14. @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
  15. fun stop(){
  16. Log.d("TAG", "stop: .....")
  17. }
  18. @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
  19. fun pause(){
  20. Log.d("TAG", "pause: ......")
  21. }
  22. }

Activity中的调用

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val observer = LifeCycle()
        lifecycle.addObserver(observer)
    }
}