Activity的生命周期变换分析

1.1、正常情况下,没有用户参与的情况,Activity的生命周期的改变
(1)onCreate:标识Activity正在创建,是生命周期的第一个方法,这里可以做界面布局的资源加载、初始化Activity的所需数据,控件的一些事件等
(2)onRestart:表示Activity正在重新启动。一般由Activity从不可见到可见状态时,会调用。比如切换到其它界面,或者通过Home键切换到桌面,当前Activity会被暂停,同时,OnPause和onStop被调用。然后紧接着又切换回这个Activity,则出现这种情况。
(3)onStart:表示Activity正在被启动,这是Activity可见,但还没有显示在前台,无法进行用户交互,可以理解为在后台。
(4)onResume:Activity已经可见,已经显示在前台,并开始活动。
(5)onPuase:表示Activity正在停止,正常情况下,onStop会被调用,可做一些非耗时的保存数据操作。
(6)onStop:Activity即将停止,可以做一些稍微重量将的回收工作,不能太耗时。
(7)onDestroy:Activity即将被销毁,这是最后一个生命周期,这里可以做最终的回收工作和资源释放。
完整生命周期切换过程如图:
在这里插入图片描述

1.2、异常情况下,Activity被系统收回或者当前设备Configuration发生改变导致Activity被销毁重建
1、资源相关的系统配置发生改变,导致Activity被杀死或者重新创建
举例说明:当我们的手机横竖屏切换时,Activity会被销毁并重新创建,通过onSaveInstanceState和onRestoreInstanceState方法做数据的保存和恢复,如下图,当然也可以阻止系统重新创建Activity。在这里插入图片描述
2、资源内存不足导致低优先级的Activity被销毁
三类Activity优先等级:高—低
(1)前台Activity—正在用户交互的Activity,优先级最高
(2)可见但非前台Activity—例如弹窗,导致Activity可见,但在后台无法和用户交互
(3)后台Activity—已经被暂停的Activity,如调用了onstop,优先级最低
所以当系统内存不足的情况下,后台Activity是最容易被杀死的,同样通过onSaveInstanceState和onRestoreInstanceState方法做数据的保存和恢复,如果一个后台工作,没有进行四大组件的执行,很容易被杀死,较好的方法就是放在Service中进行,保证进程具有一定优先级,不容易被系统杀死。
当然也可以指定Activity的configChanges属性,如果要指定多个属性,用”|“连接

android:configChanges="orientation|keyboardHidden"

特别声明:内容总结来源《Android开发艺术探索》,仅记录学习,如有侵权或不对之处,还请告知,定当删除或改正。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

这个Bug有点难搞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值