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

Android任务栈和启动模式

Andrcid中的任务栈是一种用来存放Activity实倒的容器。任务最大的特点就是先进后出,它主要有两个基本操作,分别是压栈出栈。通常Andaid应用程序都有一个任务栈,每打开一个Activity时,该Activity就会被压入任务栈。每销毁一个Activity时,该Activity就会被弹出任务栈。用户操作的Accivity永远都是栈顶的Activisty。

无论开启多少个Activity,最后开启的Activity的实例都会被压入栈的顶端,而之前开启的Activity仍然保存在栈中,但活动已经停止,系统会保存Activety被停止时的状态。当两次回到被停止的Activity时,界面为被保存停止时的状态。

 Activity启动模式有4种,分别是standand(标准),singleTop(仅一个,顶部),singleTask(仅一个,栈) 和 singleInstance(仅一个,实例)

1.standard模式
Activity的默认启动模式。每启动一个Activity就在栈顶创建一个新实例。

2.singleTop模式
该模式会判断要启动的Activity实例是否在栈顶,如果位于栈顶则直接复用,否则创建新实例。

3.singleTask模式
如果想要某个Activity在整个应用程序中只有一个实例,则需使用singleTask模式该模式会判断栈中是否存在要启动的Activity,如果存在则把上方所有实例弹出并直接使用该实例,否则创建。

4.singleInstance模式
在所有中寻找要启动的Activity,如果存在则将该栈转移到前台直接使用,如果不存在先创建一个新的任务栈并将Activity实例压入该Activity在系统中只有一个

Activity启动模式在AndroidManifest.xml(清单文件)的对应的<activity中的andrid:launchMode 属性设置

<activityandroid:name=".MainActivity"android:launchMode="singleTask">
<!-- launchMode属性用于设置启动模式 !--></activity>

http://www.lryc.cn/news/212764.html

相关文章:

  • 电脑加密软件哪个好?电脑加密软件推荐
  • 如何优雅地单元测试 Kotlin/Java 中的 private 方法?
  • 单元测试,集成测试,系统测试的区别是什么?
  • 数据结构(超详细讲解!!)第十八节 串(KMP算法)
  • 软考_软件设计师
  • 大数据之LibrA数据库系统告警处理(ALM-12004 OLdap资源异常)
  • 详解—数据结构《树和二叉树》
  • 菜单管理中icon图标回显
  • Postman如何导出接口的几种方法
  • Java进阶(Set)——面试时Set常见问题解读 结合源码分析
  • 【强化学习】12 —— 策略梯度(REINFORCE )
  • Kubernetes Taint(污点) 和 Toleration(容忍)
  • 使用cv::FileStorage时出错 Can‘t open file: yaml‘ in read mode
  • 代码之困:那些让你苦笑不得的bug
  • 【C语言初学者周冲刺计划】2.2用选择法对10个整数从小到大排序
  • c++系列——智能指针
  • 力扣日记10.30-【栈与队列篇】滑动窗口最大值
  • docker与宿主机共享内存通信
  • A股风格因子看板 (2023.10 第13期)
  • ORB-SLAM3算法2之EuRoc、TUM和KITTI开源数据集运行ORB-SLAM3生成轨迹并用evo工具评估轨迹
  • 【蓝桥杯选拔赛真题07】C++小球自由落体 青少年组蓝桥杯C++选拔赛真题 STEMA比赛真题解析
  • 期中考成绩一键私发
  • idea中Run/Debug Python项目报错 Argument for @NotNull parameter ‘module‘ of ...
  • 计算机网络第3章-TCP协议(2)
  • SQL注入——二次注入漏洞
  • 【c++|opencv】二、灰度变换和空间滤波---1.灰度变换、对数变换、伽马变换
  • 【vue3】子传父-事件总线-mitt(子组件派发事件,父组件接收事件和传递的参数)
  • 【杂记】java 大集合进行拆分
  • select...for update 锁表了?
  • 使用ControlNet生成视频(Pose2Pose)