1 standard 标准模式,每次都生成一个新的activity,标准启动模式,也是默认启动模式,如果不设置android:launchMode属性的话。standard模式下的Activity会依照启动的顺序压入BackStack中。


2 singleTop  task内栈顶单列模式

单顶模式,这种Activity启动模式,启动一个Activity的时候如果发现BackStack的栈顶已经存在这个Activity了,就不会去重新创建新的Activity,而是复用这个栈顶已经存在的Activity,避免同一个Activity被重复开启。

一般适用于可以复用而又有多个开启渠道的Activity,避免当一个Activity已经开启并获得焦点后,再次重复开启。

3 singleTask task内栈内单列模式

 开启一个Activity的时候,检查BackStack里面是否有这个Activity的实例存在,如果存在的话,情况BackStack里这个Activity上所有的其他Activity。

  适用场景为一般程序的主页面,当回退到主页面的时候,清除BackStack中,它之上的所有Activity,这样避免程序导航逻辑的混乱。比如Android系统的浏览器的主页面,

4 singleInstance 全局单列模式

被标记为singleInstance启动模式的Activity,在启动的时候,会开启一个新的BackStack,这个BackStack里只有一个Activity的实例存在,并且把这个BackStack获得焦点。这是一种很极端的模式,它会导致整个设备的操作系统里,只会存在一个这个Activity示例,无论是从何处被启动的。

  一般适用于需要在系统中只存在一个实例的场景,比如Android系统的来电页面,多次来电均使用的是一个Activity。

更多相关文章

  1. android命令行启动程序
  2. AIDL通信 android 在5.0以使用隐式Intent方式来启动Service的问
  3. 面试常问的问题解决
  4. Android(安卓)应用的欢迎界面实现代码
  5. Android系统的启动流程(转载)
  6. API Demos 2.2 研读笔记(9)——通过调用子Activity返回值
  7. Android(安卓)设计模式之策略模式
  8. 【Android话题-2.5系统服务】ServiceManager启动和工作原理是怎
  9. Android(安卓)Studio在启动时gradle的问题:Download https://serv

随机推荐

  1. RN(react-native)踩坑实录--编写项目
  2. 从头学Android之多媒体--使用SoundPool播
  3. Android(安卓)Studio中编译时遇到Finishe
  4. android之xml对象到json对象的转化
  5. Android(安卓)UI开发第十一篇——右上角
  6. 解决 android 下sqlite3_column_table_na
  7. Android相册中获取图片和路径
  8. Mac安装Android(安卓)Studio并配置环境变
  9. Android(安卓)完全退出程序
  10. Android(安卓)Studio引入Lambda以及介绍