• Activity四种launchMode


    更多内容在这里查看

    https://ahangchen.gitbooks.io/windy-afternoon/content/

    总共有四篇关于Activity,task,launchMode的文章,可以在我的博客中查看,或者在文章底部点下一篇。

    1.Standard

    默认模式,多次实例化,按序入栈出栈。

    2.SingleTop

    栈顶Activity不会被重复创建,会触发onNewIntent()事件,不在栈顶时可以多次实例化。

    3.SingleTask

    Developer.android.com的说法:

    (1)新建一个task,创建一个Activity;

    (2)如果存在一个不同的task包含这个Activity的实例,会切换到这个task,将这个Activity以上的Activity弹出,并且触发这个Activity的onNewIntent事件;

    (2)描述了不会新建task的情况,但是:

    实验发现2前提条件,有一点问题:

    (1)“包含这个Activity的实例”不是必要条件:

    如果没有一个task包含这个Activity的实例,但是,存在一个task包含与这个Activity属于同一个App的其他Activity的实例,这时不会新建task,而是切换到这个task中,在这个task中新建这个Activity。

    (2) “不同的task”不是必要条件:

    如果不存在一个不同的task包含这个Activity的实例,但是在当前的task中本身就存在这个Activity实例,不会新建task,而会在当前task中,将这个Activity以上的Activity弹出,并且触发这个Activity的onNewIntent事件;

    4.SingleInstance

    (1)如果没有一个task包含这个Activity的实例,会新建一个task,创建一个Activity;

    (2)如果存在一个task包含这个Activity的实例,会切换到这个task,并且触发这个Activity的onNewIntent事件,Activity独占task。没有描述弹出其他Activity的必要。

    (3)在包含这个Activity的task中,仅包含这个一个Activity,如果需要打开新的Activity,必须在其他task中打开,如果新建了task,task的根activity为新打开的这个Activity,之后打开这个Activity时,都不会新建Activity,只会将这个task带到前台。

    总共有四篇关于Activity,task,launchMode的文章,可以在我的博客中查看,或者直接点下一篇。

  • 相关阅读:
    一款非常好用的范围滑动插件
    设置滚动条样式
    Qml 定义 constant
    qml 中 使用 shader
    Qt ImageProvider 的使用
    qt 汉化 国际化
    qt rcc 使用
    CentOS7/RHEL7 pacemaker+corosync高可用集群搭建
    Ubunt平台Qt出现:-1: error: cannot find -lgl
    排序-堆排序
  • 原文地址:https://www.cnblogs.com/hellocwh/p/4637666.html
Copyright © 2020-2023  润新知