Activity生命周期和启动模式

本文详细介绍了Android中Activity的生命周期,包括onCreate、onStart、onResume等关键方法的区别及应用场景。此外,还深入探讨了四种不同的Activity启动模式:standard、singleTop、singleTask和singleInstance,并解释了它们在任务栈中的行为差异。

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

onRestart:一般Activity从不可见变回可见时被回调。比如,从另外一个Activity返回,生命周期是onRestart->onStart->onResume


onStart,onResume区别:

onStart:Activity已经显示,但是用户不可见,不能与用户交互,仍然在后台

onResume:Activity已显示到前台,用户可见


Activity第一次启动

onCreate->onStart->onResume


打开一个新的Activity或切换到桌面:

onPause->onStop

注:如果新Activity采用了透明主题,那么onStop不会被调用!


不能在onPause做重量级的操作,因为,新的Activity要等onPause完成后才能执行onResum


我们知道多次启动同一个Activity时,系统会创建多个实例并把它们放到任务栈中,任务栈是一种”后进先出“的栈结构。


Activity4种LaunchMode

- standard

系统默认模式,每次启动都会创建一个新实例

用ApplicationContext启动Activity时,会报错。因为非Activity类型的Context没有任务栈。解决这个问题的方法是为启动的Activty指定FLAG_ACTIVITY_NEW_TASK标记位,这样启动时,就会创建一个新的任务栈。


-  singleTop

如果新Activity已位于栈顶,不会重复创建。如果新的Activity已存在但不是位于栈顶,仍然会重复创建。


singleTask

栈内复用模式。当新的Activity已存在任务栈中,把此Activity上面的Activity全部出栈,将存在的作为栈顶。

比如任务栈有ADCB,D是signleTask模式,再启动D后,任务栈变成AD


signleInstance

单实例模式


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值