Activity生命周期概述

本文深入探讨了Android Activity的生命周期管理,包括关键事件的执行顺序、状态变化及其对用户体验的影响。重点阐述了如何在不同场景下合理利用生命周期事件,确保应用在各种操作下都能稳定运行,同时优化内存使用,提升用户满意度。

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

 

 

1、Activity的整个生命周期如上图呈金字塔状:当创建一个Activity新实例时从图左侧的onCreate()事件开始逐渐向顶端走,当到达最顶端的Resumed状态时便已到可与用户进行交互的状态,而当用户离开Activity或被中断时,Activity状态开始往图右侧的底端走;

 

2、一旦onCreate()方法执行完毕,会迅速执行onStart()和onResume(),Activity不会停留在Created或Started状态,但当onResume()事件被发生后,Activity会一直维持在Resumed状态直到一些事情发生(如退出或被半或全遮挡);

 

3、在某些情况下,Activity只会往图右侧的底端走一两步并在该处等待,这些情况如当前的Activity被半遮挡时会被onPause()并等待在Paused,再如被全遮挡时会被onStop()并等待在Stopped,返回Activity时则从当前等待处重新绕回最顶端;

 

4、无论任何原因使Activity停止或退出,onPause()总是第一个信号,且总是会在onStop()之前,而一旦Activity停止后,系统就有可能会自动销毁Activity实例以回收内存,甚至会不执行onDestory()而直接杀死应用的进程,因此用onPause()和onStop()来释放内存更为可靠;

 

5、当发生onPause()或onStop()时应注意保存用户数据,也应该销毁一些耗电操作等以增强用户体检,如拍摄类应用在发生onStop()时可停止Camera,当恢复时如在onResume()中再启用Camera;

 

6、通过onRestoreInstanceState()和onSaveInstanceState()这两个事件可以将数据保存在Bundle中,以应对Activity被操作系统销毁及再恢复时的状态回滚,onRestoreInstanceState()发生在onResume()事件之前,onSaveInstanceState()发生在onResume()事件之后。

 

总之,正确使用Activity生命周期可保障应用程序有良好的表现,必须注意如下几个方面

当用户接听电话或者转去另外一个应用程序时,不要让程序崩溃;

当用户没有激活使用它时,不消耗宝贵的系统资源;

当用户离开你的应用程序并在稍后的时间返回,不会丢失用户的进度;

当用户屏幕在横向与纵向旋转切换时,不会崩溃或者丢失用户进度。

 

  • 大小: 67.7 KB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值