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. XMLDocument 方法中实现post发送消息

    XMLDocument 方法中实现post发送消息

  2. Office Excel保留两位小数的方法,网上到处乱摘的

    今天看到一位朋友的问题就在网上查了下,顺便记下来自己用  =ROUND(A1,2)-(MOD(A1*10^3,20)=5)*10^(-2)

  3. linux命令--head

    head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾. 具体使用参考链接: h ...

  4. scrapy框架搭建与第一个实例

    scrapy是python的一个网络爬虫框架,关于它的介绍有很多资料,这里不做过多介绍(好吧我承认我还不是很懂...).我现在还在摸索阶段,因为用scrapy爬取的第一个网站非常简单,不涉及登陆.验证 ...

  5. SRM 739 Div.2

    250 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <iostre ...

  6. redis之(九)redis的事务机制

    [一]什么是redis的事务 --->redis的事务是一组命令的集合. --->redis的事务是保证一组命令,要么都执行,要么都不执行.但不支持一组命令中,其中一个或多个执行失败,不支 ...

  7. python字符编码与解码 unicode,str

    解释以下几个问题: (1)python2中str和unicode是两种字符串类型,与字符编码方式是什么关系? (2)str和unicode是怎么相互转换的? (3)'\x...':'\u...', ' ...

  8. vue-touch不支持vue2.0的替换方法

    当你想用vue-touch时,却发现官网这句话 Touch events plugin for Vue.js. This plugin does not support Vue 2.0 yet. 但是 ...

  9. rsync数据定时增量备份知识管理服务器数据

    为了保证公司知识管理服务器数据的安全性,所以计划每天同步confluence服务器上面数据 一.安装rsync服务端 1.查看是否安装rsync ps -ef | grep rsync 2.添加配置文 ...

  10. 视频H5のVideo标签在微信里的坑和技巧

    随着 4G 的普遍以及 WiFi 的广泛使用,手机上的网速已经足够稳定和高速,以视频为主的 HTML5 也越来越普遍了,相比帧动画,视频的表现更加丰富,前段时间开发了一个以视频为主的移动端 HTML5 ...