Activity启动模式精讲

讲解本技术点之前需要准备的技术点回顾

栈数据结构

数据结构图文解析之:的简介及C++模板实现 - melonstreet - 博客园


一.为什么要学习Activity启动模式

理由有如下三点

1.有时候我们的App需要生成给其他App调用的Activity,例如浏览器应用,照相机应用

2.解决生成重复页面等等Bug

3.任务栈过深的时候,避免一直按返回键也退不回想要的页面(这种可能是最常用的)

综上理由就一条:节省内存 Activity的内存开销还是挺大的 我们得尽量复用


Android四种启动模式:Standard,SingleTop,SingleTask,SingleInstance

1.Standard:很好理解,就是一直创建新的Activity新的实例 然后放入栈顶

2.SingleTop:听名字就知道 栈顶复用

 使用场景示例:新闻客户端页面,收到推送创建页面,可以用栈顶复用

3.SingleTask:栈内复用 

使用场景:假设用户在主页跳转到其他页面,运行多次操作后想返回到主页,假设不使用SingleTask模式,在点击返回的过程中会多次退出才能看到主界面,这明显就是设计不合理了

4.SingleInstance:全局复用并且只能有一个实例不能多于一个 

SingleInstance示例:页面A,B,C 其中B是SingleInstance模式 C回退的是先到A 再退出B

又例如闹钟服务页面,来电显示界面 多个应用共享的一个activity

你可能感兴趣的:(Activity启动模式精讲)