谈谈Activity管理

本文深入探讨Android中Activity的栈管理模式,解析四种启动模式的作用与配置方式,以及Intent覆盖机制。阐述默认行为下,Activity在栈内的复用机制与Home键对栈的影响。对比onNewIntent与onRestart方法的调用场景,详细解读生命周期回调,如onsaveInstance、onRestoreInstance和onCreate在数据保存与恢复中的应用。此外,文章还讨论了屏幕方向改变对Activity的影响及不同场景下的生命周期回调。

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

关于栈的概念和启动模式

1、为什么需要四种启动模式?池复用,因为按默认情况启动,会不停创建和销毁activity,所以引入栈来管理;

2、设置栈有两种方式?一种是清单文件配置taskAffinity,一种是intent设置,两种都有设置,Intent覆盖清单配置。

3、默认按返回键,出栈清空,直接回到桌面,但后台栈保留着,再启用栈内页面会复用。

4、不管当前显示哪个栈,按home键,再次进入,显示默认栈。

5、onNewIntent和onRestart的区别?前者Intent方式重复启动回调,后者页面切换再次可见执行

 

关于lifecycle

1、生命周期执行的主要数据的保存和销毁

2、onsaveInstance和onRestoreInstance、oncreate?

页面即将不只是失去焦点时,具体指按home键系统会保存数据,页面及其所有view都会调onsaveInstance方法

又会在页面数据完全可操作前恢复,既是onpasuse后调用onsaveInstance,onresume之前onRestoreInstance;

关于数据恢复也可以从oncreate恢复,但是需要判空,系统清理页面建议在onRestoreInstance恢复;

3、旋转手机分为三种情况,完全不配置screenOrientation,页面会走销毁再创建,如果配置了固定方向等属性,则会

回调onConfigChanged;如果指明垂直方向,则不会响应任何监听(建议指明)

4、当前页面启动不透明页面的什么周期

A onpause B oncreate B onstart B onResume A onsaveInstance  A onstop 

再按返回

B onpase  A onRestart A start A onResume B onstop B ondestroy 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值