Android开发艺术探索--Activity生命周期和启动模式

本文详细介绍了Android中Activity的生命周期,包括标准模式、栈顶唯一、栈内唯一和独立栈唯一等四种启动模式的特点及应用场景。重点讲解了Activity从启动到销毁的各个阶段,如onCreate、onStart、onResume等方法的调用时机及其相互之间的关系。

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

正常的Activity从启动到销毁走这样的生命周期,onCreate onStart onResume onPause onStop onDestory 其中,onCreat和onDestory是相对的,对应Activity创建或者销毁。onStart和onStop是相对的,对应Activity是否可见。
onResume和onPause是相对的,对应Activity是否位于前台,即是否可交互。从ActivityA启动ActivityB,首先得执行B的onPause方法,再走A的生命周期,再走B的onDestory,因此不能在onPause中做一些耗时操作,会影响启动时间。当Activity被意外杀死的时候,它会走onPause onStop onDestory方法,其中在onStop方法之前会调用onSaveinstance方法,保存当前的View状态结构在Bundle对象中,在onCreat和onRestoreInstance方法中拿到Bundle对象,再做处理。
启动模式有四种,Standard 标准模式,每次打开一个Activity便会new一个实例出来,并压入栈顶。singeTopz栈顶唯一。当Activity位于栈顶的时候,再打开这个Activity中,不会重新new实例,也不会调onCreate方法,会调用newIntent方法
singleTask栈内唯一。如果设置这种启动模式,如果这个activity指定了栈,会看一下有没有这个栈,没有的话创建这个栈,并压入栈中。此外,他还有clearTop的作用,比如a->b->c->d,c是这种模式,再次启动c,会把ab移除掉,执行onIntent方法。

SingleTask,基本跟singleInstance一样,比他更严格,只能独立存在栈中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值