1.正常情况下
生命周期如图:
- onCreate() 表示Activity正在被创建, 参数为onSaveInstanceState保存的状态信息
- onRestart() Activity正在重新启动
- onStart() activity变为在屏幕上对用户可见时调用
- onResume() 开始与用户交互时调用
- onWindowFocusChanged activity获取到焦点 可以进行动画等UI操作
- onPause() Activity正在停止,失去焦点
- onWindowFocusChanged activity失去焦点
- onStop() Activity即将停止,且处于不可见状态,
- 如果内存紧张,不会触发 onStop, 所以保存状态信息是应该在onPause时做
-
onDestory() Activity正在被销毁
特殊情况:
1.屏幕旋转
onPause->onSaveInstanceState-> onStop-> onDestory
-> onCreate-> onStart()-> onRestoreInstanceState()->onResume()
避免重建activity:
AndroidManifest文件中的对应Activity中配置android:configChanges=”keyboardHidden|orientation|screenSize”,
设置之后旋转屏幕:onConfigurationChanged()被回调
2.上层被透明(Translucent )Theme 的Activity或者DialogActiivty 或者Dialog覆盖
onPause->恢复的时候 onResume
3.onSaveInstanceState调用时机
- 当用户按下HOME键时。
- 长按HOME键,选择运行其他的程序时(即进入后台管理界面)。
- 按下电源按键(关闭屏幕显示)时。
- 从activity A中启动一个新的activity时。
- 屏幕方向切换时,例如从竖屏切换到横屏时。
总结来说就是在 未经用户主动操作 (finish()/back)而 有可能 导致Activity 销毁(亦可理解为Activity异常的销毁)的情况下, 系统会调用该方法以便保存状态在将来恢复 。
4. onRestoreInstanceState什么时机被调用?
onRestoreInstanceState(Bundle savedInstanceState)只有在activity确实是被系统回收,重新创建activity的情况下才会被调用。
5.非Standard 启动方式的生命周期
不管是singleTop singleTask singleInstance,
如果是相邻复用:onPause() onNewIntent()和onResume()
如果是相隔复用:onNewIntent(), onStart(), onResume()
今天的文章Activity 生命周期全解分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/16953.html