Activity的启动模式详解

Vue 10分钟入门VR全景显示 基于photo-sphere-viewer 文章目录前言一、引入photo-sphere-viewer?二、使用步骤1.引入库2.声明容器3.内容加载4.全部代码总结 前言 由于工作的需求,要实现全景图片的展示与预览,本来以为会是一个很难的内容,没想到使用现成的组件photo-sphere-viewer就可以轻松实现,上手只需要10分钟! 一、引入photo-sphere-viewer? 可以直接通过npm进行引入 npm install photo-sphere-viewer 二、使用步骤 1.引入库 photo-sphere-viewer 阅读详情

1.1Activity为什么要有启动模式?

        首先得理解”栈”这个概念.所谓的任务栈,是一种”先进后出”的栈结构,就好比给弹夹上子弹,先进去的子弹总是在后面打出.一般情况下,启动一个应用,系统就会为之创建一任务栈,用于放置根Activity,我们如果多次启动同一个activity,系统会创建多个实例并依次将他们放入任务栈.此时如果按back键,这些Activity将依次出栈,当任务栈中没有Activity的时候,系统就会回收此任务栈.回到刚才的那个问题,Activity为什么要有启动模式,其实从刚才的例子就能找到答案:如果每次启动同个activity,系统都会重复创建实例,Android在设计的时候也考虑到这个问题,所以提供了启动模式来修改系统的默认行为.

1.2四种启动模式:standard,singleTop,singleTask,singleInstance

  • standard
           标准启动模式,也是系统默认的启动模式.每次启动一个Activity,都会创建一个新的实例,不管在任务栈中是否已存在相同实例,是一种典型的多实例实现.一个任务栈中可以有多个实例,而每个实例也可以属于不同的任务栈,这句话可能听着有点绕,这里举个例子说明下:
          有两个Activity,分别是A,B,B的启动模式是standard,A启动了B,B就会进入A所在的栈中.非Activity类型的Context(如getApplicationContext)调用startActivity会报错,因为该context没有所谓的任务栈,解决这个问题的方法是给这个待启动的Activity指定FLAG_ACTIVITY_NEW_TASK的标记,这样启动的时候就会为他创建一个新的任务栈,其实此时启动Activity是以singleTask模式启动的,这个需要注意下.

  • singleTop
    栈顶复用模式.在此模式下,如果新启动的Activity已位于任务栈的栈顶了,那么此Activity不会被重复创建,同时它的onNewIntent方法将被调用,我们可以在这个方法中获取当前请求的信息,需要注意的是,这个Activity中的onCreate,onStart,onResume方法不会被调用,因为它没有改变.如果新Activity的实例已经存在,但不在栈顶位置,那么新的Activity任会重新创建.

  • singleTask
    栈內复用模式.这是一种单实例模式,只要这个Activity在栈中存在,不管在栈顶还是栈低,多次启动此Activity都不会重新创建实例,和singleTop一样,系统也会调用其onNewIntent方法,举个例子:如果A-Activity的启动模式是singleTask且请求启动,此时系统首先去找A-Activity需要的任务栈,如果存在,再确认该任务栈是否存在A-Activity的实例,如果有,则将A调到栈顶位置并调用A的onNewIntent方法;如果该任务栈中不存在此Activity实例,则重新创建实例;
    如果系统没有找到A-Activity需要的任务栈,则会创建一个任务栈,然后创建A-Activity的实例并放入栈中.需要注意的是singleTask默认具有clearTop的效果,如果A-Activity不位于目标任务栈的栈顶,启动此Activity的时候会将任务栈中A-Activity之上的实例弹栈

  • singleInstance
    单实例模式.这个singleTask的加强版,除了具备singleTask模式的所有特性外,还加强了一点,此种模式的Activity只能单独位于一个任务栈中,不存在其他的实例.例如:A-Activity的启动模式是singleInstance,被启动时,系统会为它创建一个新的任务栈,并创建A的实例,A单独在这个新的任务栈中.由于栈內复用的特性,后续的启动均不会创建新的A-Activity实例,除非这个任务栈被系统销毁.

1.3给Activity指定启动模式的常用方法及区别

常用方法
a.在menifest中配置launchMode属性:android:launchMode=”singleTask”
b. 通过Intent设置标识位:

        Intent intent = new Intent(this, HomeActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_NEW_TASK);
        startActivity(intent)

区别
1.优先级:b>a;
2.限定范围上也有所区别,a无法直接为Activity设置Intent.FLAG_ACTIVITY_CLEAR_TOP,而b方法无法为Activity指定singleInstance模式,

新手别怕!用‘东北天’和‘右前上’坐标系,5分钟搞懂惯性导航姿态矩阵(含Python验证代码) 本文通过‘东北天(ENU)’和‘右前上(RFU)’坐标系,详细解析惯性导航中的姿态矩阵概念。包含Python代码验证,帮助新手快速理解坐标变换、欧拉角及旋转矩阵的构建与应用,特别强调有限转动不可交换性与无限转动次序无关的区别。 阅读详情

相关推荐

Android 集成 Google 与 Facebook 第三方登录实战详解(2024版)

本文详细介绍了2024年Android应用集成Google与Facebook第三方登录的完整实战指南。通过分步教程和代码示例,帮助开发者快速实现一键登录功能,提升用户体验和注册转化率,同时涵盖隐私合规和常见错误处理的最佳实践。

blue的专栏 822

Activity的三种启动方式以及不同Activity之间简单的数据传递

文章目录Activity的三种启动方式显示启动隐式启动startActivityForResult不同Activity之间简单的数据传递传递简单内容传递对象 Activity的三种启动方式 Activity的启动方式分为以下三种: 显示启动 隐式启动 startActiviyForResult 下面是三种的基本用法 显示启动 一般用于启动当前工程内的普通Activity,如: 从当前MainActivity跳转至MainActivity2 //创建意图 //参数1:环境上下文,当前环境(this)

苹果是我咬的的博客 1064

Python逆向爬取Tik Tok,MsToken,X-Bogus以及signature

tiktok作为字节海外的自媒体平台,具有很非常大的价值,本文旨在教会大家实现Tik Tok的签名获取以及数据的最终爬取。

weixin_74305707的博客 3270

Activity的四种启动模式

目录一、相关知识二、Activity启动模式:1.默认启动模式——standard2.栈顶复用模式——singleTop3.栈内复用模式——singleTask4.全局唯一模式——singleInstance三、动态设置启动模式 一、相关知识 1.一个应用程序通常会有多个Activity,这些Activity都有一个对应的action(如MainActivity的action),可通过action来启动对应Activity(隐式启动)。 <action android:name="android.in

shiGXW的博客 7069

【Musescore 】开源打谱软件 快速入门笔记

前两天做了个西贝柳斯的打谱软件学习笔记,反正都是初学,今天再来学习一款同类软件,比较之后确定一款深入学习。 西贝柳斯的学习笔记在此:https://blog.youkuaiyun.com/yuetaope/article/details/120020342 西贝柳斯是商业收费软件,要么花钱,要么盗版,如果您觉得这两者都不大好,那么推荐您试试Musescore。 Musescore是一款非常优秀的开源的打谱软件,生态繁荣。“开源”和“生态”是码农业的术语,我用正常人类的语言简单解释一下。 开源就是开放程序源代码,对码农

专注于医院数据分析技术与系统开发的创作与分享。 1万+

从压电传感器到示波器:手把手教你用CA3140搭建电荷放大器(含PCB布局与调零技巧)

本文详细介绍了如何使用CA3140运算放大器搭建专业级电荷放大器,从压电传感器信号特性分析到PCB布局与调零技巧,全程实战演示。重点解析了CA3140的低通滤波器设计、反馈网络参数计算及抗干扰增强方案,帮助电子爱好者高效实现微弱电荷信号的稳定转换与测量。

weixin_31355483的博客 597

activity的启动模式有哪些?是什么含义?(一)

Activity的四种启动模式如下:standard、singleTop、singleTask、

JAVA技术博客 3734

64、5G 侧链通信技术详解

本文详细解析了5G侧链通信的关键技术,包括资源感知与选择、UE间协调、混合ARQ、功率控制、信道探测与CSI报告以及侧链同步。资源感知与选择通过周期性或随机方式实现资源分配,UE间协调通过主动或被动方式避免资源冲突。混合ARQ机制确保数据传输可靠性,功率控制和信道探测优化传输质量并减少干扰。侧链同步则通过多种方式确保设备间时间一致性。这些技术相互配合,构建了高效稳定的5G侧链通信体系,适用于智能交通、物联网、应急通信等多个领域,为未来无线通信发展提供强大支撑。

oil88的博客 102

Activity的几种启动模式

1.我们可以先讲讲从应用启动涉及到的activity堆栈流程以及四种启动模式概念(standard,singleTop,singleTask,singleInstance) 一个应用由多个Activity构成,多个Activity构成了任务,系统以栈方式进行管理任务(也就是管理多个Activity),管理方式为“先进后出”。 默认情况下,当用户点击App图标后,启动应用,这时会创建一个任务栈,并且将MainActivity压入栈中,作为栈底Activity.之后每启动一个Activity,就会将这个Ac

qq_27077899的博客 266

基于STM32的农业蔬菜大棚温湿度采集控制系统(代码+仿真+全部资料)

摘要: 本研究设计了一种基于STM32微控制器的农业蔬菜大棚温湿度智能控制系统。系统通过DHT11传感器实时采集温湿度数据,LCD屏显示当前值及预设阈值,用户可通过按键模块调整阈值范围。当温湿度超出设定阈值时,系统自动控制风扇或加湿器进行调节,确保大棚环境稳定。实验验证表明,该系统具备高精度监测、稳定控制和模块化扩展等优势,有效优化蔬菜生长环境。未来可扩展远程监控等功能,进一步提升智能化水平。 关键词: STM32、温湿度控制、蔬菜大棚、DHT11、自动化调节

3254968421的博客 785

5.7 医疗 Agent 实战:构建一个懂“望闻问切”的智能医疗咨询助手

本文介绍了如何构建一个智能医疗咨询助手项目,通过LoRA微调和vLLM部署技术,将通用大模型改造为专业"AI皮肤科医生"。项目采用精简架构:Streamlit前端直接与vLLM推理服务通信,重点展示了微调模型在专业性、安全性和同理心方面的显著提升。实施步骤包括:部署微调模型、构建交互界面,并通过对比测试验证微调效果。项目强调AI仅作为咨询助手而非医生替代品,始终以引导用户寻求专业医疗帮助为核心目标,体现了负责任AI应用的关键原则。

yonggeit的博客 2962

Activity的四种启动模式讲解

首先说一下Activity为什么需要启动模式。我们知道,在默认情况下,当我们多次启动同一个Activity的时候,系统会创建多个实例并把它们一一放入任务栈中,当我们按BACK键时,会发现这些Activity会一一回退。任务栈是一种“后进先出”的栈结构,这个较好理解,每按一下Back键就会有一个Activity出栈,直到栈为空为止,当栈中无任何Activity时,系统就会自动回收这个任务栈。知道了Ac

淮左明都的博客 428

C++ Qt6 QtQuick/QML入门进阶与项目实战视频教程

C++ Qt这些年在PC客户端、嵌入式、汽车座舱仪表等领域应用很广泛,例如剪映专业版、微信4.0、亿图脑图、Steam、美图秀秀、腾讯会议、钉钉(部分模块)等都是使用C++ QWidget/QML开发。特别是QML这种声明式UI开发更加快捷,QML的界面开发效率相对于QWidget更快速,界面效果更好,QtQuick/QML在Qt6版本也逐渐完善了,使用QML进行客户端开发是个不错的选择。

琅嬛福地 4488

Activity启动模式详解

Activity 的启动模式详解Activity四种启动模式:1.standard : activity默认的启动,也是activity的标准模式.通俗的讲,就是你每start气动一个activity都会创建一个activity的实例,并假如返回栈中,并且不管这个实例是否存在. 在这种模式下,一个任务栈可以有多个activity的实例,每一个activity的多个实例也可以处于不同的任务栈中.并且在

aa671125的专栏 686

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

详解Activity的四种启动模式

详解Activity的四种启动模式Activity之间的跳转Activity的启动模式standard 系统默认的启动模式 ——栈的结构先进后singleTop——顶部复用模式singleTask——只有一个singleInstance——单例模式【具有独占性】测试结果standard Activity之间的跳转 【先进后出 Stack】 Activity的启动模式 设置方法1 设置方法2 ...

qq_37687466的博客 550

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Android Activity 启动模式详解

最近有群里的朋友问我 Activity的四种启动模式分别是什么意思? 当初因为项目比较忙,草草的解释了下, Api文档中说的也只是一般,在这里就小记一下吧,以便有更多的朋友对Activity启动模式了解深刻一点。度娘的时候 就可以找得到不需要在 问人了。如果不了解的话,简单的几句也说不清晰。     Activity 四种启动模式,分别为:standard 、singleTop、singleTa

chonbj的专栏 9143

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Android Activity启动模式详解

上一篇《Activity启动模式之详解ActivityRecord、TaskRecord、ActivityStack》记录了深入理解启动模式所需要的一系列相关类和名词,如果有需要可以先去看看https://blog.youkuaiyun.com/luzaiyy611/article/details/99259950。 本篇尽量使用简洁的语言讲解Activity的四种启动模式以及一些需要注意的点以...

luzaiyy611的博客 277

详解Activity4种启动模式

三,Activity的启动模式 Intent的标志位FLAG: 1,Intent.FLAG_ACTIVITY_SINGLE_TOP 与加载模式singleTop功能相同 2, Intent.FLAG_ACTIVITY_CLEAR_TOP 如果已经启动了四个Activity:A,B,C和D。在D Activity里,我们要跳到B Activity,同时...

qq_38859786的博客 1133

Android开发Activity启动模式详解

本文详解Android开发Activity启动模式

qq_30725967的博客 1367

activity启动模式详解

activity为啥要设立启动模式这个机制呢?因为在默认情况下,我们每启动一个activity,不管其同样的实例存不存在,都将创建一个新的实例。这样非常没有效率,所以出现了启动模式这个东西,可以让我们修改activity的启动行为。启动模式列举: standard:系统默认模式。每启动一个activity,不管其实例存不存在,都将创建一个新的实例,一个任务栈中可以存在多个同样的实例。这样的情况下,

zhangconglin的博客 458
上一篇: Activity生命周期分析
下一篇: Android IPC 通信机制
Alrict
博客等级 码龄10年 4粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值