当前位置: 首页 > news >正文

Android Activity启动模式

文章目录

  • Android Activity启动模式
    • 概述
    • 四种启动模式
    • Intent标记
    • 二者区别

Android Activity启动模式

概述

Activity 的管理方式是任务栈。栈是先进后出的结构。

四种启动模式

启动模式说明适用场景
standard
标准模式
默认模式,每次启动Activity都会创建一个新的Activity实例,并放在栈顶。相对独立的界面
singleTop
栈顶复用模式
如果启动的Activity在栈顶,则会复用该Activity实例,并回调onNewIntent()方法。用于接收通的界面
singleTask
栈内复用模式
如果启动的Activity在栈内,则会复用该Activity实例,并回调onNewIntent()方法,并清除它上方的实例。全局的界面,如主界面
singIeInstance
单例模式
创建一个新任务栈,将新建一个Activity实例并放入新栈中,再次启动会回调onNewIntent()方法。单独隔离的界面,如地图界面

标准模式:

在这里插入图片描述

栈顶复用模式:

在这里插入图片描述

栈内复用模式:

在这里插入图片描述

单例模式:

在这里插入图片描述

在AndroidManifest中设置:

<activityandroid:launchMode="standard" />

Intent标记

标记说明
FLAG_ACTIVITY_NEW_TASK在新任务栈中启动Activity,非Activity中启动Activity需要添加该属性
FLAG_ACTIVITY_SINGLE_TOP栈顶复用模式(singleTop)
FLAG_ACTIVITY_CLEAR_TOP启动模式为standard时,栈中存在该Activity实例,则重新创建一个新实例,并清除原实例上方的所有实例;启动模式为singleTop时,不会重建Activity,会调用onNewIntent()方法,并清除上方的所有实例。
FLAG_ACTIVITY_CLEAR_TASK必须配合FLAG_ACTIVITY_NEW_TASK使用,如果任务栈存在,则清空任务栈重新创建Activity实例,如果任务栈不存在,则新建任务栈并创建Activity实例。

使用:

intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)

二者区别

  • 优先级不同:Intent标记的优先级高于Manifest设置。
  • 限定范围不同:Manifest不能设置FLAG_ACTIVITY_CLEAR_TOP,Intent无法设置singleInstance。
http://www.lryc.cn/news/310980.html

相关文章:

  • 【JavaScript】面试手撕防抖
  • 【Kubernetes】K3S
  • Docker实战——容器
  • 亚信安慧AntDB开启超融合数据库新纪元
  • 数学建模【多元线性回归模型】
  • 【 10X summary report】怎么看?详细解读笔记
  • K8S—Pod控制器
  • LabVIEW石油钻机提升系统数字孪生技术
  • C#双向链表实现:在当前节点后插入新数据的方法Insert()
  • 10-Java装饰器模式 ( Decorator Pattern )
  • Vue.js 实用技巧:深入理解 Vue.set 方法
  • 单词规律00
  • vue3 vite项目一运行就401(Unauthorized)
  • LeetCode102.二叉树的层序遍历
  • Java底层自学大纲_JVM篇
  • 数据可视化?这些平台能处
  • [ai笔记14] 周鸿祎的ai公开课笔记1
  • 在Linux系统中创建新用户并登录
  • Vue.js+SpringBoot开发高校实验室管理系统
  • 文献阅读笔记《Spatial-temporal Forecasting for Regions without Observations》13页
  • 如何学习openfoam
  • vue前端密码加密,springboot后端密码解密
  • selenuim【1】$x(‘xpath’)、WebDriverWait()、try/assert
  • 机器学习模型总结
  • HTML5:七天学会基础动画网页6
  • mybatis中#{}和${}的区别?
  • 常用git 打tag命令
  • Learning from Unlabeled 3D Environments forVision-and-Language Navigation
  • 【算法分析与设计】组合
  • 数仓模型设计方法论