文章目录
  • 1.
  • 2.
  • 3.
  • 4.

  • 这张图实在太经典了,不能不先放出来镇场子

    Activity中方法总结

    • onCreate Activity最初创建时被调用
    • onStart Activity创建或后台回到前台时被调用
    • onResume Activity创建、被覆盖、后台回到前台时被调用
    • onRestart Activity从后台回到前台时被调用
    • onPause Activity被覆盖、锁屏时被调用
    • onStop 退出当前Activity或跳转其他activity时被调用
    • onDestroy 退出当前Activity时被调用

    值得注意的是这几个方法。
    • onWindowFocusChanged Activity窗口获得或失去焦点时被调用。当Activity被创建时是在onResume之后被调用,当Activity被覆盖或者退居后台或者当前Activity退出时,它是在onPause之后被调用。 例如创建时首次呈现在用户面前;当前Activity被其他Activity覆盖;当前Activity转到其他Activity或按Home键回到主屏,自身退居后台;用户退出当前Activity。
    • onSaveInstanceState Activity被系统杀死时被调用。例如:屏幕方向改变时,Activity被销毁再重建;当前Activity处于后台,系统资源紧张将其杀死。 另外,当跳转到其他Activity或者按Home键回到主屏时该方法也会被调用,系统是为了保存当前View组件的状态。在onPause之前被调用。
    • onRestoreInstanceState Activity被系统杀死后再重建时被调用。例如:屏幕方向改变时,Activity被销毁再重建;当前Activity处于后台,系统资源紧张将其杀死,用户又启动该Activity。 这两种情况下onRestoreInstanceState都会被调用,在onStart之后。

    下面是测试结果。
    onPause:活动状态→非活动状态
    onStop:可见状态→不可见状态

    按下锁屏键:

    onSaveInstanceState
    onPause
    唤醒后:onResume
    按下home键:
    onSaveInstanceState
    onPause
    onStop
    按下back键:
    onPause
    onStop
    onDestroy

    增加dialog弹窗:无影响

    旋转屏幕:先销毁后重建
    onSaveInstanceState
    onPause
    onStop
    onDestory
    onCreate
    onStart
    onRestoreInstanceState
    onResume
    但可以通过在activity中增加android:configChanges="orientation",使其无影响。

    Fork me on GitHub