千家信息网

Android中Activity生命周期调用的示例分析

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章将为大家详细讲解有关Android中Activity生命周期调用的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。状态活动存放在一个叫返回栈的一个集合
千家信息网最后更新 2026年11月04日Android中Activity生命周期调用的示例分析

这篇文章将为大家详细讲解有关Android中Activity生命周期调用的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

状态

活动存放在一个叫返回栈的一个集合,当重新打开一个Activity时,它就会出现在栈顶。当要销毁该活动时,调用finish()或back,栈顶的活动就会出栈。

运行状态:一个活动处于栈顶时

暂停状态:不处于栈顶,但仍然可见。(失去焦点,非全屏或透明的activity放置在栈顶)

停止状态:不处于栈顶,也不可见,但还是会为它保留一些变量的相关数据。(被覆盖)

销毁状态:在栈中移除(killed状态)

启动模式

standard模式:Activity的默认启动模式。对Activity的启动和切换没有任何限制,任何时候我们通过startActivity或startActivityForResult()启动一个standard模式的activity时,系统都会创建实例并放置到栈顶。【通过intent跳转的时候会创建新的activity实例,重复创建】

singleTop模式:设置成该模式时,任务栈的栈顶不能同时存在两个Activity的实例。但在整个栈中,可以存在多个实例。防止同一个Activity重复创建或启动多次【通过intent跳转的activity在栈顶,直接复用;若栈顶没有,重新创建】

singleTask模式:整个任务栈中只能存在该activity的一个实例。重复启动时,系统会销毁该实例之前的所有其他activity,将该activity移至栈顶。【app在启动时都会创建一个任务栈,应用内被创建的activity都会放进这个栈内。只要activity实例被创建过,再次创建时都直接复用已有实例】

singleInstance模式:该模式下的Activity都将独立存在一个任务栈下,并且不能重复创建或启动。当启动一个singleInstance模式的Activity时,系统会为应用创建一个新的前台任务栈,将Activity置于栈内。【整个Android系统中实例唯一,可以让别人的程序直接复用这个Activity】

其他时候要启动其他非singleInstance模式的Activity时,系统创建另一个前台任务栈,将非singleInstance模式的Activity按照启动顺序置于前台任务栈。将singleInstance模式的Activity所在的任务栈移至后台。之后启动任何Activity都是前后台任务栈的切换。

重复启动同一个singleInstance模式的Activity时,系统将Activity所在的任务栈切换至前台,而启动其他类型Activity,不需要切换任务栈,添加新实例即可。

操作APP时生命周期调用

点开Activity,按Home键回到主屏:onPause() , onStop()

主屏,再次点击App回到Activity:onRestart() , onStart() , onResume()

在A Activity上打开 B Activity:A onPause() , B onCreate() , B onStart() , B on Resume() , A onStop()

点击Back键:onPause() , onStop() , onDestroy()

Activity异常生命周期

异常生命周期:Activity被系统回收或当前设备的Configuration发生变化(横竖屏),导致Activity被销毁重建

Configuration发生变化导致Activity被杀死并重建

onSave【Restore】InstanceState():系统自动调用,配置发生变化,Activity被异常销毁,用于存储数据(时机在onStop之前)。调用onRestore,把通过onSave保存的Bundle对象作为参数传给onRestore和onCreate。正常销毁,并不会调用这两个方法。

onRestore和onCreate的区别:都可进行数据恢复。但是onRestore一旦被系统回调,其Bundle一定不为空,无需额外的判断。但onCreate会出现为空的情况,当Activity为正常启动时,Bundle就会为空,需要额外判断。

使Activity在系统配置发生变化后不重建:给Activity指定configChange属性【orientation, screenSize】。orientation对应API < 13 , screenSize 对应API > 13 。设置之后,横竖屏切换时,不会再重建,取而代之是回调onConfigurationChanged

内存不足导致低优先级的Activity被杀死 内存不足,按照一定优先级杀死目标Activity的进程来回收内存。onSave会被调用用于存储数据,在后续恢复会调用onRestore恢复数据。

关于"Android中Activity生命周期调用的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

模式 任务 实例 系统 状态 周期 生命 数据 切换 前台 变化 活动 会创 内存 时候 篇文章 复用 示例 分析 两个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司排名 湖南永感互联网科技有限公司 奇酷互联网科技公司 世界互联网领先科技成果 互联网金融科技创新 亿账通互联网科技 碳银互联网科技有限公司 上海万想互联网科技 山东吉时兔互联网科技有限公司 深圳市运趣互联网科技有限公司 互联网科技寓意 北京华百购互联网科技有限公司 花神(南京)互联网科技有限公司 互联网科技和法律行业 黑云互联网科技有限公司 互联网科技年终奖 西安有哪些互联网高科技企业 三亚科技创新互联网基地 中国主要互联网科技公司 山东亿川互联网科技有限责任公司 上海卓越科技 互联网 科技伦理 互联网公司 互联网大会黑科技排名 河南猎农互联网科技有限公司 互联网科技如何创业 元气玛特互联网科技公司是外包吗 锡山区互联网智能科技产品供应 互联网公司高科技产品 互联网高科技行业有哪些企业 亚光科技低轨卫星互联网
0