活动的生命周期

管理机制

Android是通过任务(task)来管理活动的,在物理上的体现就是一个任务就是一组存放在栈中的活动,该栈也叫返回栈(先进后出)

准备知识

活动状态:

1.运行态:当活动位于返回栈的栈顶时处于运行态,此时可见

2.暂停态:当活动不在处于栈顶时但仍然可见时所处于的状态(从操作系统角度看是属于睡眠状态)

3.停止状态:不处于栈顶+不可见,相当于进程结束,等待系统回收资源(没了灵魂)

4.销毁状态: 回收资源(彻底死掉)

状态之间的关系:

Android(课余甜点)第三天---活动的生命周期
注:蓝颜色圈的是处于运行态的阶段,红颜色圈的是处于可见状态的阶段

活动被回收,影响用户体验,如何解决?

根据上图可知当一个活动进入停止状态的时候等待系统回收自身占的资源,但有的时候并不希望自己被回收,例如我们在A页面填好了信息,想看看B页面于是A页面处于停止状态,但当我返回的时候我希望我之前填的信息还在;如果此时系统回收资源,那么A就不存在了又要被重新创建,可此时用户可能对这种系统折磨疯了;所以有的时候我们希望保存A页面的数据,当A页面被回收的时候,依然能够重新创建新活动并导入原始数据;此时我们就要用到onSaveInstanceState(这个回调函数,这个函数能在活动被回收前被触发并保存该活动的数据:
Android(课余甜点)第三天---活动的生命周期
Bundle类型的数据跟之前intent的作用相似(传递数据),补充一点:Intent可以结合Bundle一起传递数据,其实相当于层层包装,然后层层拆解。
然后再onCreate方法中加入:
Android(课余甜点)第三天---活动的生命周期
即可防止活动被回收后数据消失的问题

相关文章:

  • 2021-10-19
  • 2021-05-06
  • 2022-12-23
  • 2021-08-06
猜你喜欢
  • 2021-12-11
  • 2021-07-06
  • 2021-04-11
  • 2021-06-12
  • 2021-12-09
  • 2021-06-14
相关资源
相似解决方案