Android生命周期学习笔记
16lz
2021-01-23
Android生命周期
Android中Activity的生命周期分两种情况: 1、典型情况下的生命周期,在用户参与的情况下,Activity所经过的生命周期 2、异常情况下的生命周期,指Activity被系统回收或者由于当前设备的Configuration发生改变从而导致的Activity被销毁重建。
典型情况下的生命周期:
1)onCreate:表示Activity正在被创建。 2)onRestart:表示Activity正在重新启动,当当前Activity从不可见重新变成可见状态时onRestart就会被调用。 3)onStart:表示Activity正在被启动,此时Activity已经可见,但是还位于后台没有出现在前台,还无法和用户交互。 4)onResume:表示Activity已经可见,并且出现在前台可以与用户交互。 5)onPause:表示Activity正在停止。 6)onStop:表示Activity即将停止。 7)onDestroy:表示Activity即将被销毁。
注意: 1)onStart、onStop与onResume、onPause的区别 onStart、onStop是从Activity是否可见这个角度来回调的。 onResume、onPause是从Activity是否位于前台这个角度来回调的。 2)从一个Activity(A)启动另一个Activity的周期(B) A:onPause B:onCreate B:onStart B:onResume A:onStop 3)在onPause方法中不能做耗时操作,否则启动另一个Activity时会用很长时间。
异常情况下的生命周期:
情况一:资源相关的系统配置信息发生改变时导致Activity被杀死并重新创建。 流程: 系统在发生异常情况下,会调用 onSaveInstanceState方法来保存当前Activity的状态,当Activity被系统重新创建时会把销毁前保存的Bundle对象作为参数传给onCreate方法和 onRestoreInstanceState。
注: onSaveInstanceState方法的触发时机: 1) 当用户按下HOME键时。 2) 长按HOME键,选择运行其他的程序时。 3) 按下电源按键(关闭屏幕显示)时。 4) 从activityA中启动一个新的activity时。 5) 屏幕方向切换时,例如从竖屏切换到横屏时。 总而言之,onSaveInstanceState的调用遵循一个重要原则,即当系统“未经你许可”时销毁了你的activity,则onSaveInstanceState会被系统调用,这是系统的责任,因为它必须要提供一个机会让你保存你的数据(当然你不保存那就随便你了)。
onRestoreInstanceState方法的触发时机:只有当Activity出现异常被销毁时且需要重新创建时才会调用。 onSaveInstanceState方法和onRestoreInstanceState方法“不一定”是成对的被调用的 情况二:资源内存不足导致低优先级的Activity被杀死 Activity优先级的划分: 1、前台Activity:正在和用户交互的Activity,优先级最高 2、可见但非前台Activity:比如Activity中弹出了一个对话框,导致Activity可见但是位于后台无法和用户直接交互。 3、后台Activity:已经被暂停的Activity,比如执行了onStop方法,优先级最低
更多相关文章
- Android开发设置Activity全屏与不全屏的方法
- Android中监听Home键的4种方法总结
- Android生命周期和启动模式
- Android 之Service的使用及生命周期
- Android ListView滑动后背景变黑问题解决方法
- Android Canvas绘图描述Android Canvas 方法总结