activity launchmode

Android Activity launchMode研究 一个launch mode为singleInstance的activity, 不允许其他的activity在它的task中, 它自己是这个task中唯一的activity. 如果它启动另一个activity, 那个新的activity会被分配到一个不同的task中去, 就好像intent中含有FLAG_ACTIVITY_NEW_TASK Flag一样.但是,如果目标task中已经有一个这个singleTop的activity的实例,并且它是在栈顶,则这个已经存在的实例将接受这个新的intent( 阅读详情


1.standard:

每次都是新的activity对象。


2.singletop:

栈顶单例。

特征:如果栈顶有此activity实例,当用startActivity调用此activity时,会复用这个activity,并调用onNewIntent() 刷新intent数据。

应用场景:notification启动的activity。

例子:网易新闻的具体网页所在的activity,

操作:打开网易新闻,打开某个具体新闻页,当有新的新闻出现在notification中时,点击notification,这时会刷掉之前所看的新闻,按back键,返回到新闻主页面。


3.singleTask:

栈单例。

特征:如果栈中有此activity实例,当用startActivity调用此activity时,会复用这个activity,通过clear掉此activity之上的所有activity的方式将此activity置于栈顶,并调用onNewIntent() 刷新intent数据。

应用场景:会被多个应用使用的app的main activity。

例子: 浏览器

操作:打开浏览器,输入某一网址,然后打开设置界面,按home键切出应用。点击微信,点击某一个网页消息进入,点击菜单,选使用浏览器打开。选择刚才的浏览器点击打开,此时会显示新的网页内容,点击back键会退出浏览器。相同的操作,用qq操作,结果一样。


4.singleInstance:

系统单例。

特征:如果栈中有此activity实例,当用startActivity调用此activity时,会复用这个activity,并调用onNewIntent() 刷新intent数据。

应用场景:和任何activity都没有逻辑关系(包括它所在的app)的activity

例子:闹钟

操作:打开闹钟设置界面,按home键进入微信,此时闹钟响了,进入闹钟提示界面,按返回键,回到微信界面。闹钟提示界面和任何app都没有逻辑关联,包括它自己所在的app。


2,3,4 复用时会调用onnewintent()


application, task, activity 的关系?

task是任务的概念 本质是个栈 一个task任务对应一个acivity集合;通过配置activity的android:taskAffinity来控制。

一个task中可以有多个应用的activity。

application是应用的概念,一个application可以有多个task任务(多个栈),默认的application里的activity都在一个栈中。


多任务控制?

android:allowTaskReparenting

是否允许此activity,回到原来的task栈中,认祖归宗,默认false,保留在启动task中。仅限于standard”和“singleTop”模式。

android:alwaysRetainTaskState

是否保持task状态,默认false,清除root activity 以外的activity。 只适用于根activity。如浏览器mainActivity设置。

android:clearTaskOnLaunch

启动时是否清除task,默认false。只适用于根activity。不想保存task状态。

android:finishOnTaskLaunch

这个属性和android:allowReparenting属性相似,不同之处在于allowReparenting属性是重新宿主到有共同affinity的task中,而finishOnTaskLaunch属性是销毁实例。

android:configChanges

在Activity中添加了 android:configChanges属性,目的是当所指定属性(Configuration Changes)发生改变时,通知程序调用 onConfigurationChanged()函数。


TaskAffinity:activity所在task栈的标记。是否属于某一逻辑关系task里。



深入测试Android Activity LaunchMode的原理与应用 本文还有配套的精品资源,点击获取 简介:本文详细探讨了Android中Activity的LaunchMode,其用于控制Activity的启动行为,并对其四种模式(standard、singleTop、singleTask、singleInstance)进行了解释和测试。通过实际案例,分析了LaunchMode对Activity生命周期的影响及其在不同应用场景中的实际应用,... 阅读详情

相关推荐

SQL注入绕过information_schema:实战技法与替代路径详解

SQL注入是Web安全领域的核心漏洞类型,其原理是通过构造恶意SQL语句,干扰应用程序与数据库的正常交互逻辑,从而窃取或篡改数据。在渗透测试与CTF竞赛中,绕过常见防护措施是提升技术能力的关键。当标准的信息收集方式受阻时,例如无法访问information_schema数据库,攻击者需要掌握替代的元数据获取方法。这些技术价值在于模拟真实环境中日益严密的防御体系,锻炼在受限条件下的系统性信息收集思维。典型的应用场景包括存在WAF过滤、权限限制或编码干扰的实战环境。本文将围绕SQL注入这一核心,深入探讨如何利用

weixin_33980459的博客 429

基础总结篇之二:Activity的四种launchMode

合抱之木,生於毫末;九層之台,起於累土;千里之行,始於足下。《老子》 今天在社区看到有朋友问“如何在半年内成为顶级架构师”,有网友道“关灯睡觉,不用半年的...”,的确,做梦还来的快一些。作为一个程序员,树立远大的目标是值得欣赏的,但不能只去空想,要一步一步地实践才行。成大事者,须从小事做起;万事起于忽微,量变引起质变。 我们今天要讲的是Activity的四种launchMode。 la

LiuHe 27万+

22版本Altium Designer导出生产文件的规范化操作指南

本文详细介绍了PCB设计中的Gerber文件导出流程及相关文件生成方法。主要内容包括:1)Gerber文件导出的5个关键设置步骤;2)NC钻孔文件的导出方法;3)坐标文件的生成方式;4)文件打包规范要求必须包含Gerber文件、NC钻孔文件和坐标文件;5)文件提交的两种方式(新手推荐提交原始工程文件,量产推荐仅提交Gerber文件包)。文章还特别强调了单位一致性、精度验证等注意事项,为PCB设计文件的规范输出提供了完整指导。

qq_56506325的博客 1055

关于Activity的4种launchMode

关于Activity的4种launchMode启动的每个Activity都要在AndroidManifest.xml中配置,否则就会报错. 这是我在测试中SingleInstanceActivity的配置代码:<Activity android:name=".SingleInstanceActivity" android:launchMode="singleInstance

Tim_bin的专栏 1036

Windows11安装Ubuntu 20.04.3 LTS双系统(详细过程)

一、基础环境 听说BIOS模式的传统MBR模式和新式UEFI模式,会对安装双系统产生影响。Windows11应该都是UEFI吧,可以按win+r输入msinfo32回车确认查看BIOS模式,我的电脑是UEFI+双硬盘 Ubuntu安装准备 1、 官网下载Ubuntu 20.04.3 LTS镜像iso文件:https://ubuntu.com/download/desktop 2、 下载官网推荐的U盘启动制作工具rufus: https://rufus.ie/ 3、制作启动u盘 插入U盘, 运行 rufu

学习随笔 9万+

基于Hadoop生态的大数据异常检测平台搭建

批处理:用Spark MLlib的LOF(局部异常因子,适合高密度数据)、(单类支持向量机,适合高维数据);流处理:用Flink ML的(实时聚类,检测离群点)、ADWIN(自适应滑动窗口,处理概念漂移)。数据层:用Flume/Kafka采集数据,HDFS存储,Hive管理元数据;计算层:用Spark处理离线批数据,Flink处理实时流数据;算法层:用孤立森林(批)、3σ原则(流)检测异常;可视化层:用Grafana做仪表盘,Prometheus+Alertmanager报警。这个平台能处理。

软件工程实践的博客 933

Activity launchmode和Intent flag详解

学习安卓,首先就要接触和学习Activity,想必大家在学习activity的过程中一定对activity的launchmode有过困惑。好在网络上关于activity launchmode的博客、解释一大堆,可以方便我们去理解和使用activity launchmode模式,但我强烈建议大家还是要自己动手实践做一些例子,这样才能真正理解activity的launchmode,而且经过实践后你会发现

泥土的博客 1486

仪表数字图像识别的传统方法

虽然现有很多机器学习算法能够准确地识别数字,但是传统方法对于一些需要离线识别且计算能力有限的下位机设备来说,仍然有非常不错的效果。因此,今天就向大家讲解一下传统的数字识别方法在仪表读数方面的应用。 1.图像预处理技术 1.1 主要流程 图像处理依次需要进行图片预处理、字轮区域定位、字符分割和字符识别等过程。其中图像处理流程如下图所示。 2. 详细过程 2.1 灰度化 为了减小图像原始数据量,本系...

XYZ 4523

Activity的LaunchMode和taskAffinity

设置Activity的LaunchMode属性可以决定这个Activity是和当前Task保持关联,还是说每次运行这个Activity是新建一个实例,还是保持单例。   Task和Back Stack简介   task是一组Activities的集合,一组Activities被Stack(back stack)所管理。   在一个应用中,有3个activities,分别是acti

wangshione的专栏 7546

python:实现brutefore破解wifi(附完整源码)

python:实现brutefore破解wifi(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 5705

STM32(HAL库)驱动HC-SR04测距模块

本文介绍通过STM32F103C8T6单片机对HC-SR04测距模块进行驱动,并且通过串口对数据进行打印。

weixin_44597885的博客 2203

16.Android Activity的launchMode

Android Activity的launchModeAndroid Activity的launchMode Activity Task standard Android 5点0之前 Android 5点0之后 使用场景 singleTop 5点0前后和standard一样 使用场景 singleTask 一个App中 不同App Google关于singleTask的描述 taskAffinity

Save you from anything 5098

课堂练习及课后作业2.1:外部中断

本关任务:通过相关知识以及实验回答:版本 1 内核的第 6 次时钟中断发生时,断点和恢复点(指令地址)分别是多少?本关任务:修改版本 0 内核,使得每发生 100 次时钟中断,就在屏幕上输出一个字符‘t’和当时的进程号,如“t(0)”表示0号进程运行时发生了时钟中断。本关任务:通过实际操作回答在输出第一行 0/1 字符的过程中(如下图所示),共发生了几次时钟中断?本关任务:修改版本 1 内核源码,使得每次时钟中断发生时,都在屏幕上输出字符‘t’。分析版本1内核,找到第一次时钟中断的恢复点地址。

Junds0的博客 1万+

activity android:launchmode,Activity的四种LaunchMode

任务和返回栈使用android:launchMode="standard|singleInstance|single Task|singleTop"来控制Acivity任务栈。任务栈是一种后进先出的结构。位于栈顶的Activity处于焦点状态,当按下back按钮的时候,栈内的Activity会一个一个的出栈,并且调用其onDestory()方法。如果栈内没有Activity,那么系统就会回收这个栈...

weixin_33019803的博客 296

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

WINCC7.3破解文件

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

Activity的启动模式launchMode

Activity的启动模式launchMode

勇者你好 957

Activity的四种launchMode

合抱之木,生於毫末;九層之台,起於累土;千里之行,始於足下。《老子》 今天在社区看到有朋友问“如何在半年内成为顶级架构师”,有网友道“关灯睡觉,不用半年的...”,的确,做梦还来的快一些。作为一个程序员,树立远大的目标是值得欣赏的,但不能只去空想,要一步一步地实践才行。成大事者,须从小事做起;万事起于忽微,量变引起质变。 我们今天要讲的是Activity的四种launchMode。 la

u012264122的专栏 712

android Activity launchMode

1. Task 和 BackStack     在学习launchMode之前,我们先要理解Task和BackStack,Task是用户所交互的activity的序列,通常情况下,一个Task是从用户点击app图标首次运行一个app开始的,在不返回Home界面的情况下,后续所跳转的所有Activity都属于该Task。     一个Task中的所有Activity都是放在一个栈中去管理的,这个

ghost4j的博客 410

Android activity launchMode与Intent.Flag关系

看了不少Android 方面的数据

小九的专栏 5596

ACTIVITY四种LAUNCHMODE

ACTIVITY四种LAUNCHMODE

梦里风林的专栏 575

Activity launchMode、回退栈与 affinity

文章目录概述Task 与回退栈activity 相关属性launchModelaffinity参考 概述 最近在看 aosp 源码,Activity 启动流程中涉及到大量 Activity 处理细节,如果不从模型上掌握 Task, affinity 等概念,很容易看迷失在代码里。本文意在从模型上梳理 Activity 启动模式以及对应的设置代表的含意,为继续阅读源码打基础。 Task 与回退栈 一...

BillionLeeGogogo 470

Android之Activity(三)Task和LaunchMode

Task 就好像是能包含很多 Activity 的栈。默认情况下,一个 Activity 启动另外一个 Activity 时,两个 Activity 是放在同一个 Task 栈中的,第二个 Activity 压入第一个 Activity 所在的 Task 栈。当用户按“返回”按钮时,第二 Activity 从栈中弹出,第一个 Activity 恢复执行。

LeoYan的博客 654

Activity之launchMode详解

最近在面试过程中会遇到考察关于Activity中LaunchMode的四种形式,故找来对应的资料详细学习之! 在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity。这需要为Activity配置特定的加载模式,而不是使用默认的加载模式。加载模式分...

weixin_30323631的博客 99
上一篇: 夜间模式的实现
下一篇: activity ondestory()的调用时机
javalive09
博客等级 码龄16年 43粉丝 281原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值