Activity的生命周期 Activity中的数据保持

本文详细解析了Android中Activity的生命周期过程,包括活动栈、不同状态及其切换,以及如何通过onSaveInstanceState进行数据保持,确保用户体验连续性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一,Activity的生命周期

1.Activity活动栈

 2.Activity状态

3.Activity状态之间的切换

 4.代码实例体验Activity生命周期

二,Activity中的数据保持

1.onSaveInstanceState()


一,Activity的生命周期

1.Activity活动栈

        众所周知,Android中的Activity是可以层叠的,当我们启动一个新的Activity时,就会叠加在旧的Activity上,点击Back销毁Activity,上一个Activity就会重新显示出来,之所以会这样,是因为Android是使用活动栈(也叫返回栈)来管理Activity的。

        每启动一个新的Activity,它就会在活动栈中入栈,并处于栈顶位置,按下Back健销毁Activity后,它就会出栈,下一个Activity就会重新处于栈顶位置,屏幕上显示的总是栈顶的Activity。

 2.Activity状态

Activity在内存中右四种存在状态:

(1)运行状态

        当Activity处于活动栈栈顶时,Activity就处于运行状态。此时的Activity需要和用户进行交互,所以系统尽可能不会回收处于运行状态的Activity。

(2)暂停状态

        当Activity不再处于栈顶位置,但是仍然可见时,就处于暂停状态。例如弹出对话框时,对话框下面的Activity就处于暂停状态。因为暂停状态的Activity仍然可见,所以系统也是尽可能不会回收暂停状态的Activity,除非内存极低的情况,系统才会考虑回收。

(3)停止状态

        当Activity不再处于栈顶位置,并且不可见时,就处于停止状态。因为处于停止状态的Activity可能会被重新启动,所以系统会为这种Activity保存用户状态信息,但当系统内存不够时,会优先杀死该类Activity。

(4)销毁状态

        当Activity从活动栈中移除时就变成了销毁状态。系统会回收该类Activity以保证内存充足。

3.Activity状态之间的切换

        Activity类中定义了七个回调方法,覆盖率Activity生命周期的每一个环节,每当Activity的状态改变时,这些方法就会被调用:

  1. onCreate():创建方法。在Activity第一次被创建时调用,每当我们创建一个新的Activity时,都会重写一次onCreate方法。在这个方法中应当完成加载布局和绑定事件等操作;
  2. onStart():启动方法。在Activity每次由不可见变为可见时调用;
  3. onResume():在Activity准备好与用户交互时调用,此时Activity一定位于活动栈的栈顶,并且处于运行状态;
  4. onPause():暂停方法。在系统准备去启动或者恢复另一个Activity时调用,或者说是当前Activity进入暂停状态之前调用。通常会在这个方法中将一些消耗CPU的资源释放,以及保存一些关键数据。这个方法的执行速度一定要快,否则会影响到新的Activity的使用;
  5. onStop():停止方法。这个方法在Activity完全不可见时调用。
  6. onDestroy():销毁方法。在Activity销毁之前调用。
  7. onRestart();重启方法。在Activity由停止状态变为运行状态之前调用,重启之后Activity重新位于活动栈栈顶,被用户可见;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值