在android的配置文件AndroidManifest.xml中,我们需要设置android的启动模式一共有四种,分别是:

standard(标准-默认的) singleTop(栈顶单例)  singleTask(任务中单例)  singleInstance(全局单例)

首先我们知道:activity工作时会涉及到TASK,每个TASK都对应一个BackStack,每次执行一个activity都会从栈顶压入栈底,如此 往复,显示在栈顶的的那个activity就是我们看到的界面;

1,standard:只存在一个Task,每start一个activity就往栈里压入一个activity,多个相同或不同的activity可以任意叠加,

应用场景:基本的activity套用

    

如图:A\B\C三个Activity,A启动B,B启动C,C启动A,任意叠加均可,最后显示的是B

2,singleTop:被设置为singleTop的activity其上层只能叠加其他的activity,不能叠加自身

应用场景:当一个activity启动时被卡顿,此时如果是standard,用户点击会出现启动多个相同的activity导致bug,而用singleTop就会避免这种情况发生;


如图,如果activity-C被设为singleTop,用C启动C就不会再次创建一个C,但用C启动A还是可以的,即顶部不能重复

3,singleTask:被设置为该模式的activity其只能存在一个实例,在任何场合重新启动该activity则它上面的叠加的所有activity自动全部销毁,露出该实例;

应用场景:某一activity已经被用户编辑过了,再次启动该activity时应该是编辑后的状态而不是重新打开一个新的未编辑的activity


如图所示。

4,singleInstance:设置该mode的activity其所在的栈有且仅有它自己一个实例,不存在其他任何实例,在任何场合重启该activity不会新建一个,其他非singleInstance的实例位于另外同一个栈中

应用场景:如果需要打开第三方应用,那么该应用就不能跟原来的activity叠加到一个栈中,而应该另外开启一个Task进行操作


如图:C是唯一TASK,唯一instance。

更多相关文章

  1. Android中Activity启动模式详解
  2. Android学习笔记(4)——Android(安卓)Application是如何运行的
  3. ROS(indigo) turtlebot2 + android一些有趣应用
  4. Android笔记四 虚拟机Dalvik、Android各种java包功能、Android相
  5. Android命令行启动程序-am命令的使用-纠正网上大部分资料的错误
  6. Android面试题整理--1
  7. Android(安卓)启动过程详解
  8. Andrioid SystemProperties和Settings.System介绍,不同应用间传递
  9. Android系统进程Zygote启动过程的源代码分析

随机推荐

  1. 彻底搞定HashMap面试问题!!!
  2. 3-7(单链表的相关算法题)
  3. MySQL基础知识——管理和连接
  4. 使用graylog2收集dhcp日志
  5. MySQL基础知识——安装
  6. 这该死的游标,怎么这么难呢?
  7. LVS NAT原理、配置
  8. VmwareWorkstation 16无法安装VMware Too
  9. Mac系统上查看端口占用和释放端口教程
  10. 职场里,对数据库要有敬畏之心!