android中的四种启动模式launchMode

原创 2016年05月30日 19:12:20

在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。

版权声明:本文为博主原创文章,未经博主允许不得转载。

带你深入理解Activity启动模式(LaunchMode)

我们知道默认情况下,当我们多次启动同一个activity时,系统会创建多个实例并把他们一个个放入任务栈,当我们按back键,这些activity又会一个个退出。在讲activity的launchmod...
  • sd_zhuzhipeng
  • sd_zhuzhipeng
  • 2016年05月10日 23:36
  • 5268

android launchmode(四种启动模式)应用场景及实例

我们在开发项目的过程中,会涉及到该应用中多个Activity组件之间的跳转,或者夹带其它应用的可复用的Activity。例如我们可能希望跳转到原来某个Activity实例,而不是产生大量重复的 Act...
  • u012422855
  • u012422855
  • 2016年07月24日 17:23
  • 4656

android中的四种启动模式launchMode

在android的配置文件AndroidManifest.xml中,我们需要设置android的启动模式一共有四种,分别是: standard(标准-默认的) singleTop(栈顶单例)  si...
  • yxb_yingu
  • yxb_yingu
  • 2016年05月30日 19:12
  • 416

Android 4种启动模式launchMode

Android启动一个Activity有多种方式,可能是启动一个新的Acticity,也可能是重用之前已经创建的Activity实例;可能和之前的Activity位于同一个任务栈中,也可能是位于一个新...
  • icezmb
  • icezmb
  • 2015年01月27日 20:37
  • 141

activity的四种启动模式区别_launchmode图文详解

Activity的launchMode详细分析 应用中的每一个Activity都是进行不同的事物处理。以邮件客户端为例,InboxActivity目的就是为了展示收件箱,这个Activity...
  • androidstar_cn
  • androidstar_cn
  • 2016年10月03日 23:55
  • 843

android中的LaunchMode详解----四种加载模式

加载模式分类及在哪里配置 Activity有四种加载模式: standardsingleTopsingleTasksingleInstance 设置的位置在AndroidManife...
  • u012532559
  • u012532559
  • 2014年09月03日 10:10
  • 2527

Activity的四种启动加载模式(launchMode)

在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity。 ...
  • majihua817
  • majihua817
  • 2015年11月02日 11:34
  • 677

Activity启动模式(LaunchMode)

【1】taskAffinity属性:用于表明该Activity所期望的task 【2】每个Activity的taskAffinity默认值为其Application对应的taskAffinity,每个...
  • ydzyd
  • ydzyd
  • 2016年02月18日 13:46
  • 187

android launchMode理解以及应用场景

在我们写应用的时候,常常涉及多个activity组件之间的跳转。比如说某个资讯的页面中,点击下一篇资讯跳转相同的页面,只有页面的数据不一样。一般情况下我不会注意launchMode 这个属性,只会使用...
  • android_freshman
  • android_freshman
  • 2016年10月27日 17:51
  • 3152

[Android开发]Activity的四种启动模式及其应用场景

启动模式(launchMode)在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用...
  • CodeEmperor
  • CodeEmperor
  • 2016年01月08日 11:39
  • 15416
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android中的四种启动模式launchMode
举报原因:
原因补充:

(最多只允许输入30个字)