activity的生命周期及启动模式

本文深入探讨了Android中Activity的生命周期,包括onCreate(), onStart(), onResume()等关键方法的作用及调用时机,同时解析了四种不同的启动模式:standard, singleTop, singleTask, singleInstance的工作原理。

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

activity的生命周期:
onCreate(),onStart(),onResume(),onPause(),onRestart(),onStop(),onDestory()
对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行:onStart()

当打开一个activity时,调用onCreate()->onStart()->onResume(),如果已经创建,不用调用onCreate(),当打开另一个activity后,一样的步骤,当它遮住原先的activity时,原先的activity会调用onPause()隐藏,当重新返回原先的activity时,第二个activity,onStop()->onDestory();第一个activity如果没有销毁的话,会直接调用onRestart(),否则需重新建立

横竖屏切换时候 activity 的生命周期:
1、不设置 Activity 的 android:configChanges 时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
2、设置 Activity 的 android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
3、设置 Activity 的 android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行 onConfigurationChanged 方法

4种 activity 的启动模式:
1.standard: 标准模式,一调用 startActivity()方法就会产生一个新的实例。
2.singleTop: 如果已经有一个实例位于 Activity 栈的顶部时, 就不产生新的实例, 而只是调用Activity 中的 newInstance()方法。如果不位于栈顶,会产生一个新的实例。
3.singleTask: 会在一个新的 task(工作任务) 中产生这个实例,以后每次调用都会使用这个,不会去产生新的实例了。
4.singleInstance: 这个跟 singleTask 基本上是一样, 只有一个区别: 在这个模式下的Activity实例所处的 task 中,只能有这个 activity实例,不能有其他的实例。

 

转载于:https://www.cnblogs.com/jiuqing/p/4138701.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值