讲解本技术点之前需要准备的技术点回顾
栈数据结构
数据结构图文解析之:栈的简介及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