天天看点

谈谈Activity管理

关于栈的概念和启动模式

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