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. C 基础框架开发

    引言 有的人真的是天命所归 延安时期炸弹 投到他院子都 没炸. 有些事无法改变 是命! 我们也快'老'了, 常回家看看. 前言 扯淡结束了,今天分享的可能有点多,都很简单,但是糅合在一起就是有点复杂. ...

  2. Canvas 高级

    一.Canvas 高级 1.变换--位移 translate(x, y) 2.变换-缩放 scale(xS, yS) 3.变换-旋转 rotate(弧度) 4.环境的保存和释放 save() rest ...

  3. C++ 输入ctrl+z 不能再使用cin的问题

    问题介绍: 程序步骤是开始往容器里面写数据,以Ctrl+Z来终止输入流,然后需要输入一个数据,来判断容器中是否有这个数据. 源代码如下: #include<iostream> #inclu ...

  4. [ python ] 类的组合

    首先,使用面向对象是一个人狗大战的实例: class Person: def __init__(self, name, hp, aggr, sex): self.name = name self.hp ...

  5. 关于那些Android中不常用的设置属性

    很多在manifest中的属性我们经常遗忘了它们,或者经常看到但又不是很明白它的作用.那么在这里我就拿了一些属性简单的解释一下,防止以后碰到却不知道其中的意思.不是很全,以后会断断续续的补充吧 一.a ...

  6. c语言中数组,指针数组,数组指针,二维数组指针

    1.数组和指针 ] = {,,,,};// 定义数组 // 1. 指针和数组的关系 int * pa = array; pa = array; // p[0] == *(p+0) == array[0 ...

  7. How To Install Nginx on Ubuntu 16.04 zz

    Introduction Nginx is one of the most popular web servers in the world and is responsible for hostin ...

  8. 《java并发编程实战》读书笔记4--基础构建模块,java中的同步容器类&并发容器类&同步工具类,消费者模式

    上一章说道委托是创建线程安全类的一个最有效策略,只需让现有的线程安全的类管理所有的状态即可.那么这章便说的是怎么利用java平台类库的并发基础构建模块呢? 5.1 同步容器类 包括Vector和Has ...

  9. 《java并发编程实战》读书笔记1--线程安全性,内置锁,重入,状态

    什么是线程安全? 当多个线程访问某个类时,不管这些的线程的执行顺序如何,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的. 哈哈书上的解释,还是翻译过 ...

  10. AC日记——妖梦斩木棒 洛谷 P3797

    妖梦斩木棒 思路: 略坑爹: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 200005 #define m ...