在上一篇博客中,Android-Activity启动模式(launchMode),就介绍了Activity四种启动模式的特点与使用等,但是到底什么样子的场景,去使用什么样子的启动模式呢

Activity启动模式分为四种:

  

  如果不配置:launchMode,默认就是:standard 标准的

  standard 标准的

  singleTop 独占顶端

  singleTask 单任务

  singleInstance 单实例


任务栈存放Activity引用  任务栈 进栈 出栈

最上面的Activity,可以称为:TopActivity   最顶端的Activity

最下面的Activity,可以称为:BaseActivity 最底端的Activity


Activity启动模式,不出意外,使用最多的一定是默认的,standard 标准的

但是standard 标准的 这种启动模式,每启动一个Activity 就进栈一个Activity,这样有些情况下是不合理的,我的Activity在最顶端就没有必要,再次启动进栈一个 或者启动进栈多个

,Activity的引用重复,这样不利于ActivityManager的管理,任务栈Activity引用重复,当点击返回Back操作的时候,体验非常不好;

在App应用中,在TopActivity会被再次启动或者多次启动的时候,就可以采用singleTop来解决,任务栈Activity引用的重复,利于ActivityManager的管理,让体验更加好等...

Android操作系统的 浏览器 书签 Activity的启动模式 就是采用 singleTop


一般情况下,应用程序的主界面(MainActiviy),的启动模式是SingleTask,为什么呢,请看以下图:

Android操作系统 浏览器的主界面Activity的启动模式就是 singleTask


singleInstance 单实例,一个Activity被其他方多次调用(如果不用singleInstance,那会很混乱,好几个人打电话过来怎么办,所以需要singleInstance),

            并且这个Activity对性能要求高

Android操作系统/package/apps/Phone/AndroidManifest.xml  找到通话界面

Android操作系统的 通话界面Activity 同时接听两个电话 就体现了singleInstance的特点

singleInstance除了管理Activity界面,不混乱,不多次进栈,等等。

还有另外一个原因:(singleInstance会开辟一个新的任务栈,来存放Activity的引用,可以提高性能,正好通话界面非常注重性能,因为通话界面 是去启动硬件猫打电话系列操作)

Android操作系统的应用Phone-->通话界面的启动模式为什么不用标准模式standard ?

答:1.会非常混乱,例如:多个人打电话过来接听,或者在 操作系统的联系人应用中可以看到,在拨打电话的应用也可以看到,任务栈会被进栈多次,管理非常混乱。

  2.standard不会开辟新的任务栈,效率不高,通话界面需要去启动硬件的猫..,很耗时。

Android操作系统的应用Phone-->通话界面的启动模式为什么不用独占顶端模式singleTop ?

答:1.无法保证通话界面Activity在顶端,所以会非常混乱,例如:多个人打电话过来接听,或者在 其他应用打开,在拨打电话的应用也可以看到,任务栈会被进栈多次,管理非常混乱。

  2.singleTop不会开辟新的任务栈,效率不高,通话界面需要去启动硬件的猫..,很耗时。

Android操作系统的应用Phone-->通话界面的启动模式为什么不用单任务模式singleTask ?

答:1.singleTask单任务模式,会从底端往上找,一旦找到就直接杀到顶端,这是不合理的,不能杀死其他在singleTask之上的Activity。

  2.singleTask不会开辟新的任务栈,效率不高,通话界面需要去启动硬件的猫..,很耗时。

Android-Activity启动模式-应用场景的更多相关文章

  1. Android Activity 启动模式详解

    最近有群里的朋友问我 Activity的四种启动模式分别是什么意思? 当初因为项目比较忙,草草的解释了下, Api文档中说的也只是一般,在这里就小记一下吧,以便有更多的朋友对Activity启动模式了 ...

  2. AndroidのActivity启动模式

    Activity启动模式      .概念      Activity启动模式定义了Activity启动的规则,它决定着Activity的实例创建与重用与否    .属性     Activity的启 ...

  3. Android Activity启动模式

    <activity android:name=".MainActivity" android:launchMode="singleTask"> &l ...

  4. Android Activity 启动模式和任务栈

    在了解了基本的Activity的生命周期后,我们能够很好的在一个Activity上面做相关的业务.但是这是不够的,因为Android通过任务栈来保存整个APP的Activity,合理的调度任务栈才能够 ...

  5. 详解Android Activity启动模式

    相关的基本概念: 1.任务栈(Task)   若干个Activity的集合的栈表示一个Task.   栈不仅仅只包含自身程序的Activity,它也可以跨应用包含其他应用的Activity,这样有利于 ...

  6. android:Activity启动模式之singleTask(一)

    先看一下standard启动模式的说明: 仅仅有一个实例.在同一个应用程序中启动他的时候.若不存在此Activity实例.则会在当前栈顶创建一个新的实例.若存在,则会把栈中在其上的其他Activity ...

  7. android activity 启动模式

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 1,标准的, 2,单个 顶部 3,单个 任务 4,单个 实例 标准的 就是 每启动一次这 ...

  8. Android组件体系之Activity启动模式解析

    本文主要分析Activity的启动模式及使用场景. 一.Activity启动模式浅析 1.standard 标准模式,系统默认的启动模式.在启动Activity时,系统总是创建一个新的Activity ...

  9. Android中Activity启动模式详解

    在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. An ...

  10. 【转】Android总结篇系列:Activity启动模式(lauchMode)

    [转]Android总结篇系列:Activity启动模式(lauchMode) 本来想针对Activity中的启动模式写篇文章的,后来网上发现有人已经总结的相当好了,在此直接引用过来,并加上自己的一些 ...

随机推荐

  1. 黄聪:mysql搬家,直接复制data文件夹(*.MYD,*.MYI,innodb)出错,无法正常显示

    解决办法: 1.复制旧mysql的data文件夹中的数据库到新mysql的data文件夹内. 2.删掉旧的“ib_logfile*”等日志文件,重启MySQL后会自动生成新的日志文件的. 3.复制旧的 ...

  2. 如何判断两个IP地址是不是在同一个网段

     要判断两个IP地址是不是在同一个网段,就将它们的IP地址分别与子网掩码做与运算,得到的结果一网络号,如果网络号相同,就在同一子网,否则,不在同一子网. 例:假定选择了子网掩码255.255.254. ...

  3. java单例模式等一些程序的写法....持续更新...

    一.单例模式的写法: public class MyFactory { /** * 饿汉式 */ private static MyFactory instance = new MyFactory() ...

  4. suse 安装gcc

    1)挂载ISO镜像 新建一个目录: mkdir /mnt/iso 将ISO文件挂载到该目录上: mount -o loop /opt/SLES-11-SP3-DVD-x86_64-GM-DVD1.is ...

  5. React性能优化 PureComponent

    为什么使用? React15.3中新加了一个 PureComponent 类,顾名思义, pure 是纯的意思, PureComponent 也就是纯组件,取代其前身 PureRenderMixin  ...

  6. 20165233 Java第八、十五章学习总结

    20165233 2017-2018-2 <Java程序设计>第六周学习总结 教材学习内容总结 ch08 基础:String类 重点:StringTokenizer类.Scanner类:获 ...

  7. Liunx cannot remove `xxx': Operation not permitted

    链接: http://mangocool.com/detail_1_1439515930283.html 解到原来文件还可以设置隐藏权限,就是这个chattr设置,下面我们来看看这个命令的详解. [r ...

  8. JSF + Primefaces: Problem with “rendered” components with ajax

    Cant seem to get rendered to work correctly with update attributes. Here is my codes <ui:define n ...

  9. FullBg-网页图片背景自适应大小

      网页背景自适应大小jQuery插件 fullBG.js http://cbavota.bitbucket.org/fullbg/ HTML <img id="background& ...

  10. Shader.WarmupAllShaders

    [Shader.WarmupAllShaders]