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

Activity的自启动模式

以下内容摘自郭霖《第一行代码》第三版

文章目录

    • Activity的自启动模式
      • 1.standard(默认)
      • 2.singleTop
      • 3.singleTask
      • 4.singleInstance

Activity的自启动模式

启动模式一共有4种,分别是standardsingleTopsingleTasksingleInstance,可以在AndroidManifest.xml中通过给<activity>标签指定android:launchMode属性来选择启动模式。

1.standard(默认)

在standard模式下,每当启动一个新的Activity,它就会在返回栈中入栈,并处于栈顶的位置。

在这里插入图片描述

2.singleTop

当Activity的启动模式指定为singleTop,在启动Activity时如果发现返回栈的栈顶已经是该Activity,则认为可以直接使用它,不会再创建新的Activity实例。

<activityandroid:name=".FirstActivity"android:launchMode="singleTop"android:label="This is FirstActivity"><intent-filter><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/></intent-filter>
</activity>

不过当Activity并未处于栈顶位置时,再启动Activity还是会创建新的实例的。
在这里插入图片描述

3.singleTask

让某个Activity在整个应用程序的上下文中只存在一个实例。当Activity的启动模式指定为singleTask,每次启动该Activity时,系统首先会在返回栈中检查是否存在该Activity的实例,如果发现已经存在则直接使用该实例,并把在这个Activity之上的所有其他Activity统统出栈,如果没有发现就会创建一个新的Activity实例。

<activityandroid:name=".FirstActivity"android:launchMode="singleTask"android:label="This is FirstActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter>
</activity>

在这里插入图片描述

4.singleInstance

指定为singleInstance模式的Activity会启用一个新的返回栈来管理这个Activity(其实如果singleTask模式指定了不同的taskAffiffiffinity,也会启动一个新的返回栈)。

场景:假设我们的程序中有一个Activity是允许其他程序调用的,如果想实现其他程序和我们的程序可以共享这个Activity的实例,使用前面3种启动模式肯定是做不到的,因为每个应用程序都会有自己的返回栈,同一个Activity在不同的返回栈中入栈时必然创建了新的实例。而使用singleInstance模式就可以解决这个问题。

在这种模式下,会有一个单独的返回栈来管理这个Activity,不管是哪个应用程序来访问这个Activity,都共用同一个返回栈,也就解决了共享Activity实例的问题。

<activity android:name=".SecondActivity"android:launchMode="singleInstance"><intent-filter><action android:name="com.example.activitytest.ACTION_START" /><category android:name="android.intent.category.DEFAULT" /><category android:name="com.example.activitytest.MY_CATEGORY" /></intent-filter>
</activity>

在这里插入图片描述

相关文章:

Activity的自启动模式

以下内容摘自郭霖《第一行代码》第三版 文章目录 Activity的自启动模式1.standard&#xff08;默认&#xff09;2.singleTop3.singleTask4.singleInstance Activity的自启动模式 启动模式一共有4种&#xff0c;分别是standard、singleTop、singleTask和singleInstance&#x…...

53数组的扩展

数组的扩展 扩展运算符Array.from()Array.of()实例方法&#xff1a;copyWithin()实例方法&#xff1a;find()&#xff0c;findIndex()&#xff0c;findLast()&#xff0c;findLastIndex()实例方法&#xff1a;fill()[实例方法&#xff1a;entries()&#xff0c;keys() 和 valu…...

Rust调试【三】

Local Debug: vscode CodeLLDB extension memory leak analysis: Rust and Valgrind FFI Memory wrapping: Foreign Function Interface FFI panic handling: Panic handling...

uniApp 对接安卓平板刷卡器, 读取串口数据

背景: 设备: 鸿合 电子班牌 刷卡对接 WS-B22CS, 安卓11; 需求: 将刷卡器的数据传递到自己的App中, 作为上下岗信息使用, 以完成业务; 对接方式: 1. 厂家技术首先推荐使用 接收自定义广播的方式来获取, 参考代码如下 对应到uniApp 中的实现如下 <template><view c…...

Go new 与 make

Go new 与 make 在Go语言中&#xff0c;"new"和"make"都是用于动态分配内存的关键字&#xff0c;但它们有不同的用途和区别。 "new": 在Go语言中&#xff0c;"new"是一个内建函数&#xff0c;用于值类型&#xff08;基本类型和用户定…...

centos系统离线安装k8s v1.23.9最后一个版本并部署服务,docker支持的最后一个版本

注意&#xff1a;我这里的离线安装包是V1.23.9. K8S v1.23.9离线安装包下载&#xff1a; 链接&#xff1a;https://download.csdn.net/download/qq_14910065/88139255 这里包括离线安装所有的镜像&#xff0c;kubeadm&#xff0c;kubelet 和kubectl&#xff0c;calico.yaml&am…...

(学习笔记-内存管理)如何避免预读失效和缓存污染的问题?

传统的LRU算法存在这两个问题&#xff1a; 预读失效 导致的缓存命中率下降缓存污染 导致的缓存命中率下降 Redis的缓存淘汰算法是通过实现LFU算法来避免 [缓存污染] 而导致缓存命中率下降的问题&#xff08;redis 没有预读机制&#xff09; Mysql 和 Linux操作系统是通过改进…...

【arthas】入门与实战(一)

arthas 一、安装1. 安装与启动二、具体应用1.查看 dashboard1.1 各区域详解2.查看jvmweb访问查询垃圾回收器具体内容和大概的操作官网上都有,下面记录的是自己的一些操作、思考和查找的资料,帮助理解。 官网文档:https://arthas.aliyun.com/doc/ 一、安装 1. 安装与启动 …...

vim、awk、tail、grep的使用

vim命令 $定位到光标所在行的行末^定位到光标所在行的行首gg定位到文件的首行G定位到文件的末行dd删除光标所在行ndd删除n行&#xff08;从光标所在行开始&#xff09;D删除光标所在行&#xff0c;使之变为空白行x删除光标所在位置字符nx删除n个字符&#xff0c;从光标开始向后…...

vue拖拽改变宽度

1.封装组件ResizeBox.vue <template><div ref"resize" class"resize"><div ref"resizeHandle" class"handle-resize" /><slot /></div> </template> <script> export default {name: Resi…...

华为数通HCIA-ARP(地址解析协议)详细解析

地址解析协议 (ARP) ARP &#xff08;Address Resolution Protocol&#xff09;地址解析协议&#xff1a; 根据已知的IP地址解析获得其对应的MAC地址。 ARP&#xff08;Address Resolution Protocol&#xff0c;地址解析协议&#xff09;是根据IP地址获取数据链路层地址的一个…...

【Python机器学习】实验04(1) 多分类(基于逻辑回归)实践

文章目录 多分类以及机器学习实践如何对多个类别进行分类1.1 数据的预处理1.2 训练数据的准备1.3 定义假设函数&#xff0c;代价函数&#xff0c;梯度下降算法&#xff08;从实验3复制过来&#xff09;1.4 调用梯度下降算法来学习三个分类模型的参数1.5 利用模型进行预测1.6 评…...

【ChatGLM_01】ChatGLM2-6B本地安装与部署(大语言模型)

基于本地知识库的问答 1、简介&#xff08;1&#xff09;ChatGLM2-6B&#xff08;2&#xff09;LangChain&#xff08;3&#xff09;基于单一文档问答的实现原理&#xff08;4&#xff09;大规模语言模型系列技术&#xff1a;以GLM-130B为例&#xff08;5&#xff09;新建知识库…...

谷歌Tsunami(海啸)扫描器搭建扩展使用教程

目录 介绍 下载地址 功能总结 原理 服务探测 漏洞检测 安装...

诚迈科技承办大同首届信息技术产业峰会,共话数字经济崭新未来

7月28日&#xff0c;“聚势而强共领信创”2023大同首届信息技术产业峰会圆满举行。本次峰会由中共大同市委、大同市人民政府主办&#xff0c;中国高科技产业化研究会国际交流合作中心、山西省信创协会协办&#xff0c;中共大同市云冈区委、大同市云冈区人民政府、诚迈科技&…...

【Python】Python使用TK实现动态爱心效果

【Python】Python使用Tk实现动态爱心效果 画布使用了缓存机制&#xff0c;启动时绘制足够多的帧数&#xff0c;运行时一帧帧地取出来展示&#xff0c;明显更流畅&#xff0c;加快了程序执行速度。将控制跳动动画的函数从正弦函数换成了贝塞尔函数&#xff0c;贝塞尔函数更灵活…...

Unity3d C#快速打开萤石云监控视频流(ezopen)支持WebGL平台,替代UMP播放视频流的方案(含源码)

前言 Universal Media Player算是视频流播放功能常用的插件了&#xff0c;用到现在已经不知道躺了多少坑了&#xff0c;这个插件虽然是白嫖的&#xff0c;不过被甲方和领导吐槽的就是播放视频流的速度特别慢&#xff0c;可能需要几十秒来打开监控画面&#xff0c;等待的时间较…...

【Android】APP启动优化学习笔记

启动优化目的 用户体验&#xff1a; 应用的启动速度直接影响用户体验。用户希望应用能够快速启动并迅速响应他们的操作。如果应用启动较慢&#xff0c;用户可能会感到不满&#xff0c;并且有可能选择卸载或切换到竞争对手的应用。通过启动优化&#xff0c;可以提高应用的启动…...

docker的使用

docker安装 https://docs.docker.com/engine/install/debian/ 设置国内镜像 创建或修改 /etc/docker/daemon.json 文件&#xff0c;修改为如下形式 {"registry-mirrors": ["https://registry.hub.docker.com","http://hub-mirror.c.163.com"…...

iOS使用Rust调研

编辑已恢复 我们已与您断开连接。尝试重连时会保存您所做的变更。尝试重连 标题 1 已保存 Bin Song B 要发布此内容&#xff0c;请选择键盘上的 ⌘Enter。 发布 关闭 Rust技术空间 … 跨平台使用调研 iOS使用Rust调研 添加表情符号 添加标题图像 添加状态 一、iOS 项…...

Fish-Speech-1.5在短视频生产的应用:批量生成多语种配音方案

Fish-Speech-1.5在短视频生产的应用&#xff1a;批量生成多语种配音方案 1. 引言 短视频内容创作正面临着一个普遍痛点&#xff1a;多语言配音成本高、周期长。传统方式下&#xff0c;一个MCN机构要为一条短视频制作中文、英文、日文三种语言的配音&#xff0c;需要分别联系不…...

5个维度深度评估:哪款内容解锁工具真正值得投入时间?

5个维度深度评估&#xff1a;哪款内容解锁工具真正值得投入时间&#xff1f; 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在数字信息时代&#xff0c;付费墙已成为内容获取的主要障…...

别再手动调格式了!用C#和FastReport.Net搞定标签批量打印与90度旋转(附完整源码)

C#与FastReport.Net实战&#xff1a;打造高可用的标签批量打印与旋转解决方案 在仓储管理、物流配送和零售价签打印等场景中&#xff0c;开发人员经常需要处理各种规格的标签打印需求。传统的手动调整方式不仅效率低下&#xff0c;而且难以应对频繁变化的业务需求。本文将分享如…...

57:L构建紫队协同:蓝队的协同防御

作者&#xff1a; HOS(安全风信子) 日期&#xff1a; 2026-03-07 主要来源平台&#xff1a; GitHub 摘要&#xff1a; 传统的红队和蓝队分离模式存在沟通障碍&#xff0c;导致防御效率低下。L构建了一套紫队协同系统&#xff0c;通过AI驱动的团队协作、知识共享和防御优化&…...

Umi-OCR技术解密:离线文字识别的3大创新与全行业实践指南

Umi-OCR技术解密&#xff1a;离线文字识别的3大创新与全行业实践指南 【免费下载链接】Umi-OCR Umi-OCR: 这是一个免费、开源、可批量处理的离线OCR软件&#xff0c;适用于Windows系统&#xff0c;支持截图OCR、批量OCR、二维码识别等功能。 项目地址: https://gitcode.com/G…...

别再手动画点阵了!用PCtoLCD2002搞定LCD/OLED汉字显示,附STM32移植代码

嵌入式开发实战&#xff1a;PCtoLCD2002字模生成与STM32显示全链路解析 在嵌入式设备上实现中文显示一直是开发者面临的经典难题。传统的手动绘制点阵方式不仅效率低下&#xff0c;而且难以保证显示效果的一致性。本文将深入探讨如何利用PCtoLCD2002工具链&#xff0c;从字模生…...

在供应链与资本获取驱动下,近半数全球高管计划于未来12个月内拓展美国业务布局

• 45%的企业高层管理人员计划在未来12个月内设立美国法律实体&#xff1b;另有27%表示将在未来两至三年内考虑进入美国市场 • 65%的受访者将供应链或制造效率视为推动赴美扩张的首要驱动因素 • 88%的企业将联邦及州层面的税务申报认定为美国合规中最具挑战性的领域 CSC最新研…...

Java POI读取大文件慢如何优化

用java poi处理大型excel文件时&#xff0c;往往会遇到阅读速度慢的问题&#xff0c;严重影响程序性能。本文将针对“java poi打开大文件的慢优化方法&#xff1f;”这个问题讨论了几个可行的解决方案&#xff0c;以帮助开发者提高程序效率。问题在于java poi 默认情况下&#…...

别再只会用Burp改后缀了!5种Web文件上传绕过技巧原理深度拆解(.htaccess/MIME/00截断)

Web文件上传绕过技术&#xff1a;从原理到实战的深度解析 在CTF竞赛和实际渗透测试中&#xff0c;文件上传漏洞一直是高频出现的攻击面。许多开发者仅仅依赖简单的后缀名过滤或前端验证&#xff0c;却忽视了底层解析机制的复杂性。本文将深入剖析五种主流绕过技术的核心原理&am…...

提升90% UI开发效率:psd2fgui工具从设计到实现的全流程指南

提升90% UI开发效率&#xff1a;psd2fgui工具从设计到实现的全流程指南 【免费下载链接】psd2fgui A tool for converting psd file to fairygui package. 项目地址: https://gitcode.com/gh_mirrors/ps/psd2fgui 一、核心价值&#xff1a;为什么选择psd2fgui&#xff1…...