Activity启动模式

启动模式

image

a、Standard模式

  • 特点:创建一个栈内就新加一个

  • 描述

    Standard是Activity 默认启动模式,每次启动一个Activity都会重新创建一个新的Activity加入栈中
    
  • 举例

栈内初始顺序
  C 页面(顶)
  B 页面
  A 页面
C页面内点击跳转至C页面
  C 页面(顶)
  C 页面
  B 页面
  A 页面

b、SingleTop模式

  • 特点:同类型时栈顶复用,不同类型时按照Standard模式

  • 描述

     SingleTop模式存在两种情况:
     1,当需要创建的Activity已经处于栈顶时(例如C页面跳转至C页面),此时不会再重新创建,而是直接服用栈顶的Activity
     2,当需要创建的Activity不是处于栈顶时,此时会跟Standard模式一样,新创建一个Activity放至到栈顶
    
  • 举例1

栈内初始顺序
  C 页面(顶)
  B 页面
  A 页面
C页面内点击跳转至C页面
  C 页面(顶)
  B 页面
  A 页面
  • 举例2

栈内初始顺序
  C 页面(顶)
  B 页面
  A 页面
C页面内点击跳转至A页面
  A 页面(顶)
  C 页面
  B 页面
  A 页面

c、SingleTask模式

  • 特点:同类型的在栈内只有一个

  • 描述

     SingleTask模式存在两种情况:
     1,当需要创建的A Activity不存在时,此时会跟Standard模式一样,新创建一个Activity放至到栈顶
     2,当需要创建的A Activity已经存在,此时处于此A Activity栈顶所有的Activity都会被移出栈(finish),需要创建的Activity同名的A Activity处于栈顶(Activity不会重新创建)
    
  • 举例

栈内初始顺序,A页面启动模式为SingleTask
  C 页面(顶)
  B 页面
  A 页面
C页面内点击跳转至A页面,B、C页面被移除
  A 页面(顶)

d、SingleInstance模式

  • 特点:具有所有SingleTask特性,并且会独立一个Task(一个栈内可以有多个Task)

  • 描述

  • 举例

栈内初始顺序,C页面启动模式为SingleInstance
  B 页面(顶)
  A 页面
B页面内点击跳转至C页面,开启两个Task
  Task1                          Task2
  B 页面(顶)                     C 页面(顶)
  A 页面
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Activity使我们在开发中最常用到的组件,除了坑爹的生命周期他的启动模式也是很重要的一个知识点。Activit...
    Airoyee阅读 302评论 0 3
  • 一个应用程序当中通常都会包含很多个Activity,每个Activity都是一个具有特定的功能,并且可以让用户进行...
    尹star阅读 28,090评论 46 306
  • 任务栈是什么任务栈Task,是一种用来放置Activity实例的容器,他是以栈的形式进行盛放,也就是所谓的先进后出...
    Jason_andy阅读 484评论 0 1
  • 本来想针对Activity中的启动模式写篇文章的,后来网上发现有人已经总结的相当好了,在此直接引用过来,并加上自己...
    小帝Ele阅读 484评论 0 0
  • 夜空中灰色的云,好像藏着天庭的兵将,浑厚的,让人呼吸都困难。过了一会儿,遥远的龙王,带着天庭的旨意,正往这儿来。那...
    山中客服阅读 493评论 0 0