看了很多关于Activity启动模式(launchMode)和intent设置intent.setFlags

(Intent.FLAG_ACTIVITY_NEW_TASK);
发现网上说的和我测试结果 不符。

想必大家一定看过 http://marshal.easymorse.com/archives/2950 这篇文字的解说。 我当初看完之后

觉得确实很清晰了
但又看了其他人的关于结合intent的Flags 以及ActibvityAffiity属性等文章后 越来越迷糊。

现在说说我的不解 :

先看大多数 大家总结的4种方式如下:
standard  每次都会新建,每个Task都可以有,且每个Task都可以有多个实例(每个Task都可以有,且

可以有多个)  
singleTop 当前实例如果在栈顶,就不新建实例,调用其OnNewIntent。 如不在栈顶,则新建实例  (

每个Task都可以有,且可以有多个,在栈顶时可复用)  
singleTask 新建一个Task,如果已经有其他的Task并且包含该实例,那就直接调用那个Task的实例。(

只有一个Task中会有)  
singleInstance 新建一个Task,且在该Task中只有它的唯一一个实例。 (只有一个Task会有,且该Task

中只有它)

standard 没有悬念很好理解 测试也符合。
singleTop 也基本理解,但有人说如果配合FLAG_ACTIVITY_NEW_TASK使用则会产生新的TASK 对此我测试

的时候 并没有发现有新的TASK产生 打印的TASKID依然是原先的。
singleTask 对此很迷糊 大家都说是产生了一个新TASK 测试后并无发现创建了新TASK 且加上

FLAG_ACTIVITY_NEW_TASK也无效,依然是TASKID无变化,是不是我理解错误呢?
singleInstance 对此表示理解 且经过测试 也都符合文档描述。且创建了新的TASKID 且 这个TASKID种

只有它自己的实例存在。

附上我的测试过程

test.task.ActivityB(standard) ->(FLAG_ACTIVITY_NEW_TASK)-> test.task.ActivityC(standard)

TASKID 无变化

test.task.ActivityB(standard) ->(FLAG_ACTIVITY_NEW_TASK)-> test.task.ActivityC(singleTop)

TASKID 无变化

test.task.ActivityB(standard) ->(FLAG_ACTIVITY_NEW_TASK)-> test.task.ActivityC(singleTask)

TASKID 无变化

test.task.ActivityB(standard) ->(FLAG_ACTIVITY_NEW_TASK)-> test.task.ActivityC(singleTask)

TASKID 有变化 新TASKID

希望前辈帮我理清这个基础性的东西,同时也帮助更多新手 对此概念进行进一步的强化。

关于Activity启动模式(launchMode)和intent设置测试后 发现和网上说的不符 是不是我错了 求解的更多相关文章

  1. Android 之Activity启动模式(二)之 Intent的Flag属性

    首页博客链接关于我留言板 前面介绍了通过launchMode设置Activity的启动模式.本章接着介绍Activity的启动模式相关内容,讲解的内容是Intent与启动模式相关的Flag,以及and ...

  2. 深入Activity,Activity启动模式LaunchMode完全解析

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53221384本文出自[DylanAndroid的博客] 在平时的开发中,我们可 ...

  3. activity启动模式launchMode区别和优化

    初学android的开发人员,可能会经常忽略这个重要的设置. Activity一共有以下四种launchMode:1.standard2.singleTop3.singleTask4.singleIn ...

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

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

  5. Activity启动模式 及 Intent Flags 与 栈 的关联分析

     http://blog.csdn.net/vipzjyno1/article/details/25463457    Android启动模式Flags栈Task   目录(?)[+] 什么是栈 栈 ...

  6. 【转】Activity启动模式 及 Intent Flags 与 栈 的关联分析

    http://blog.csdn.net/vipzjyno1/article/details/25463457    在学习Android的过程中,Intent是我们最常用Android用于进程内或进 ...

  7. Android Activity 的四种启动模式 lunchMode 和 Intent.setFlags();singleTask的两种启动方式。

    原文:Android Activity 的四种启动模式 lunchMode 和 Intent.setFlags();singleTask的两种启动方式. Android Activity 的四种启动模 ...

  8. Activity启动模式

    ------siwuxie095 共4种启动模式:standard singleTop singleTask singleInstance 1.标准启动模式(standard) 也即默认的启动模式 ( ...

  9. Android中Activity启动模式详解

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

随机推荐

  1. Python9-面对对象1-day22

    def Person(name,blood,aggr,sex): person = { 'name' : name, 'blood':blood, 'aggr': aggr, 'sex' : sex, ...

  2. SPOJ - ADALIST,双端队列入门模板!

    ADALIST - Ada and List 这道题时限6.5s,激动人心啊,好多人STL一顿乱写AC,哈哈,如果熟悉双端队列的话这道题其实是很水的. 题意:n个数的数列,然后接下来Q次操作,每次可以 ...

  3. Percona XtraBackup 2.4新特性之恢复单个表数据

    参考文档:https://www.percona.com/doc/percona-xtrabackup/2.4/xtrabackup_bin/restoring_individual_tables.h ...

  4. BZOJ 1974 [Sdoi2010]auction 代码拍卖会 ——动态规划

    把每一位上不递减的数拆成1+11+11111+11111+..... 然后就可以把巨大的N从复杂度中消掉,因为随着长度的增加1...111%p出现了循环节. 然后就是从n个数中选出几个使他们结果为0( ...

  5. Hadoop 3.1.0 在 Ubuntu 16.04 上的安装过程

    安装过程主要参考官方文档: http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster. ...

  6. cf396B On Sum of Fractions

    Let's assume that v(n) is the largest prime number, that does not exceed n; u(n) is the smallest pri ...

  7. Lucky and Good Months by Gregorian Calendar(poj 3393)

    大致题意: 科普文一篇,文章80%都是无用信息,因为都是常识,但是又不得不看,因为有20%是常人不知道的历史常识. 定义: Goog month : 该月第一个工作日为星期一的月份 Luckly mo ...

  8. LVM 类型的 Storage Pool

    LVM 类型的 Storage Pool 不仅一个文件可以分配给客户机作为虚拟磁盘,宿主机上 VG 中的 LV 也可以作为虚拟磁盘分配给虚拟机使用. 不过,LV 由于没有磁盘的 MBR 引导记录,不能 ...

  9. 在线预览Word,Excel

    今天在项目中遇到了在线预览word的需求,经过查阅资料与测试发现可以解决问题,特做记录: 方式: http://view.officeapps.live.com/op/view.aspx?src= s ...

  10. Java面试题集(三)

    Jdk与jre的区别? Java运行是环境(jre)是将要执行java程序的java虚拟机. Java开发工具包(jdk)是完整的java软件开发包,包含jre,编译器和其他工具如javaDoc,ja ...