zoukankan      html  css  js  c++  java
  • Activity启动模式

    问题:当我们添加activity的launchMode属性时,发生了什么?

    <activity android:name=”.MainActivity”
      android:launchMode=”singleTop”>
    </activity>
    

    假设A、B、C、D、E、F是我们创建的活动界面。

    launchMode=”singleTop”

    添加launchMode=“singleTop”到D。

    情景1:

    活动栈的初始状态

    D-D在活动栈的顶端

    C

    B

    A

    从服务、其它应用或者其它一些位置启动D

    活动栈的最终状态

    D-旧的实例,通过onNewIntent(Intent intent)获取extras data

    C

    B

    A

    情景2:

    活动栈的初始状态

    C

    B

    A

    从服务、其它应用或者其它一些位置启动D

    活动栈的最终状态

    D -正常启动

    C

    B

    A

    情景3:

    活动栈的初始状态

    C

    D

    B

    A

    从C启动D

    活动栈的最终状态

    D -因为上一个D不在顶端,新的实例将被创建

    C

    D

    B

    A

    launchMode=”singleTask”

    添加launchMode=”singleTask”到 C.

    情景1:

    活动栈的初始状态

    D

    C

    B

    A

    启动C

    活动栈的最终状态

    C -旧的实例,通过onNewIntent(Intent intent)获取 extras data

    B

    A

    实际上– D 销毁了

    情景2:

    活动栈的初始状态

    B

    A

    启动C

    活动栈的最终状态

    C -正常启动.

    B

    A

    launchMode=”singleInstance”

    添加launchMode=”singleInstance”到 E.

    情景1:

    活动栈的初始状态

    D

    C

    B

    A

    Start E

    活动栈的最终状态

    E

    — — — — — — — — — — — — — — — — — — — — — — —

    D

    C

    B

    A

    信息 — A , B , C , D 在一个任务中,而 E 在另一个任务中.

    并且,如果继续从E启动F,那么

    活动栈的最终状态

    F

    D

    C

    B

    A

    — — — — — — — — — — — — — — — — — — — — — — —

    E

    信息 — A , B , C , D , F 将会在一个任务,而 E在另一个任务中.

    另一种情景:

    活动栈的初始状态

    A

    B

    — — — — — — — — — — — — — — — — — — — — — — —

    E

    从A启动E

    活动栈的最终状态

    E -旧的实例, 通过onNewIntent(Intent intent)获取extras data 

    — — — — — — — — — — — — — — — — — — — — — — —

    A

    B

    launchMode=”standard”

    添加launchMode=”standard”到 B.

    活动栈的初始状态

    D

    C

    B

    A

    启动B

    活动栈的最终状态

    B -新实例

    D

    C

    B

    A

  • 相关阅读:
    使用Azure进行自动化机器学习
    关于ML.NET v1.0 RC的发布说明
    关于ML.NET v0.8的发布说明
    使用ML.NET + Azure DevOps + Azure Container Instances打造机器学习生产化
    使用ML.NET + ASP.NET Core + Docker + Azure Container Instances部署.NET机器学习模型
    neo4j 数据库迁移
    ubuntu1604 搜狗输入法安装
    Chrome 键盘快捷键
    Ubuntu Cleaner清理工具
    bash 数组
  • 原文地址:https://www.cnblogs.com/LWJin/p/11839009.html
Copyright © 2011-2022 走看看