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

  • 相关阅读:
    springmvc+mybatis多数据源切换
    Tomcat 8.5 配置自动从http跳转https
    Tomcat 8.5 配置 域名绑定
    本地测试Tomcat配置Https访问
    Spring boot
    解决IDEA16闪退的问题
    cef
    spring-boot学习资料
    oracle 表空间不足解决办法
    oracle导出表的办法
  • 原文地址:https://www.cnblogs.com/LWJin/p/11839009.html
Copyright © 2011-2022 走看看