Activity是Android中的四大重要组件之一,必须了解的点,主要是它的生命周期: 主要有一下几个过程:
- 启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
- 当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行,并继续执行onStop方法。
- 当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onRestart方法,再次进入运行状态。
- 当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。
- 用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。
- 当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。
- 用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。
但是知道这些还不够,我们必须亲自试验一下才能深刻体会,融会贯通。下面是示例:
###启动时: ###锁屏时: ###解锁时: 其中还有一个onSaveInstanceState方法,该方法调用是在onPause方法之后,主要有三种情况调用:
- 在Activity被覆盖或退居后台之后,系统资源不足将其杀死,此方法会被调用;
- 在用户改变屏幕方向时,此方法会被调用;
- 在当前Activity跳转到其他Activity或者按Home键回到主屏,自身退居后台时,此方法会被调用。
当屏幕旋转时,android会先销毁当前Activity,再建一个新的,log如下: