Activity启动模式
 
 
 .概念
  
  Activity启动模式定义了Activity启动的规则,它决定着Activity的实例创建与重用与否
 
 .属性
 
  Activity的启动模式在menifest.xml中的<activity>标签中设置,属性为launchMode
 
 .分类
 
  Activity的启动模式分为四类: standard 、 singleTop 、 singleTask 、 singleInstance
  
 .备注
 
  Android采用Task来管理不同的Activity。当启动一个Activity时,系统会先创建一个Task, 然后再启动这 个Activity的入口。我们可以把Task理解为   栈。
 
 
 .Standard(标准模式)
 
 设置:系统默认的模式,可不设置 
 特点:每次创建Activity,都会新建一个Activity对象,并置顶
 示例:从Activity A跳转到Activity B,再跳转到ActicityA,则栈为: A -> B -> A
 
 
 .SingleTop(栈顶单例模式)
 
 设置:launchMode = "singleTop"
 特点:检查栈顶元素是否为当前Activity,如果是,则复用;如果不是,则新建Activity,置顶
 示例:当前栈为: A -> B -> C,当前栈顶为C,如果跳转到C,则复用C,栈为: A -> B -> C
 
 .SingleTask (全栈单例模式)
 
 设置:launchMode = "singleTask"
 特点:检查全栈元素是否有当前Activity,如果有,则使在该Activity之上的Activity出栈,使其置顶      
 示例:当前栈为: A -> B -> C -> D,如果跳转到B,则C、D出栈,栈为: A -> B   
 
 .SingleInstance(系统单例模式)
 
 设置:launchMode = "singleInstance"
 特点:系统范围检查是否存在该Activity,如果存在,则复用
 
 
 从上述总结
 
 相同点:目标Activity均须置顶
 
 不同点:  Standard 每次都新建Activity实例 
 
           SingleTop/SingleTask则先检查是否存在该Activity,存在则复用
 
           SingleTop由于栈顶操作,不须置顶;SingleTask须出栈置顶
 
           SingleTop/SingleTask都是实现栈内单例
 
           SingleInstance则是实现系统单例 
 
           SingleTask/SingleTop模式,均会调用onNewIntent()     
 
     
     
 

AndroidのActivity启动模式的更多相关文章

  1. Android Activity 启动模式详解

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

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

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

  3. Android Activity启动模式

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

  4. 详解Android Activity启动模式

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

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

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

  6. android activity 启动模式

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

  7. Android中Activity启动模式详解

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

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

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

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

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

随机推荐

  1. 2017多校第9场 HDU 6166 Senior Pan 堆优化Dij

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6166 题意:给你一个有向图,然后给你k个点,求其中一个点到另一个点的距离的最小值. 解法:枚举二进制位 ...

  2. 如何使用vux创建vue项目

    1.安装vue-cli,通过vue-v可以查明 安装vue-cli步骤 vue init airyland/vux2 projectPath(项目名字) 2.安装依赖模块 方法1:npm instal ...

  3. PostGIS pgrouting路径分析

    --让数据库支持PostGIS和pgRouting的函数和基础表(安装后第一次使用时执行,以后都不再执行) CREATE EXTENSION postgis; CREATE EXTENSION pgr ...

  4. 6:django 通用视图

    上一节我们介绍了django视图函数里面几个常用的函数,这节我们来看一下django为我们提供的一些通用视图吧 在最后面有我自己的示例代码,html部分太多了就不贴了 “简单”视图函数 正如名字所言, ...

  5. 取消myeclipse自动进入workspace

    进入到C:\Program Files\MyEclipse 6.5\eclipse\configuration\.settings目录, 修改SHOW_WORKSPACE_SELECTION_DIAL ...

  6. P1474 货币系统 Money Systems(完全背包求填充方案数)

    题目链接:https://www.luogu.org/problemnew/show/1474 题目大意:有V种货币,求用V种货币凑出面值N有多少种方案. 解题思路:就是完全背包问题,只是将求最大价值 ...

  7. MapReduce案例一:天气温度

    1.需求 2.思路 3.代码实现 3.1MyWeather 类代码: 这个类主要是用来定义hadoop的配置,在执行计算程序时所需加载的一些类. package com.hadoop.mr.weath ...

  8. maven中profile的激活方式

    1.默认激活 Maven给我们提供了多种不同的profile激活方式.比如我们可以使用-P参数显示的激活一个profile,也可以根据环境条件的设置让它自动激活等. <profile> & ...

  9. Linux之父Linus的8个趣闻轶事

    博客中的文章均为 meelo 原创,请务必以链接形式注明本文地址 <只是为了好玩:Linux之父林纳斯自传>是一本很古老的书了,2001年就有了中文版,在2014的时候图灵图书又把它重新翻 ...

  10. JavaScript中字符串分割函数split用法实例

    这篇文章主要介绍了JavaScript中字符串分割函数split用法,实例分析了javascript中split函数操作字符串的技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了JavaSc ...