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

  • 相关阅读:
    hive匹配中文
    修改GIT密码
    Oracle中文排序问题
    redis-cli显示中文
    iOS应用图标AppIcon
    Flink开发环境搭建(maven)
    Flink安装部署
    java连Oracle连接字符串写法
    centos设置路由route
    Android 手机卫士--xutils说明与下载方法使用
  • 原文地址:https://www.cnblogs.com/LWJin/p/11839009.html
Copyright © 2011-2022 走看看