Android 四种launchMode及疑问

全面掌握Android LaunchMode:测试实例详解 本文还有配套的精品资源,点击获取 简介:Android中的 LaunchMode 定义了Activity的启动方式和在任务栈中的行为。本测试实例深入解析四种 LaunchMode :标准模式、单实例模式、单任务模式和单栈顶模式。开发者通过在AndroidManifest.xml中设置launchMode属性来实现这些启动模式,并通过多次启动Act... 阅读详情

之前对于四种模式的理解仅限于理论和一两个简单的测试(singleTop和singleTask)

今天脑袋抽风想都实际测一下,晕,测到 singleInstance杯具了

请对四种模式熟悉的朋友直接跳到文章底部,帮忙看下singleInstance的问题,谢谢

 

未标明launchMode的Activity都是默认启动模式

1,standard

每次都会新建一个Activity实例

 

2,singleTask

栈空间简易示意:A -- B -- C

 最后用startActivity(intent)从C跳到A后,由于栈空间已经存在A的实例,A上面的Activity B和C出栈(即onDestroy销毁),A置于栈顶

如果A中重写了onNewIntent(...)方法,会同时接到C跳A的intent数据

 

3,singTop

栈空间简易示意:A -- B -- C

最后用startActivity(intent)从C跳到A后,即使栈控件已经存在A的实例,Android系统也会重新创建一个A的实例并且置于栈顶,当然重写的onNewIntent(...)方法也不会接到intent数据, 变成:

 

4,singleInstance(代码跳转逻辑:A -- B -- C -- A -- B -- C .....)

1,起始Activity非singleInstance (实际跳转顺序:A -- B -- C -- A -- B -- C .....)

 

A,C位于同一栈中,taskId相同, B在另一个栈中,与他们taskId不同,此栈在B未被销毁前只能有B一个Activity(B在创建之后,onNewIntent(...)也可以接到其他Activity跳转的intent数据),整个过程中,B只创建了一次,A与C每次都创建一个实例

2,起始Activity为singleInstance(实际跳转顺序:A -- B -- C -- A -- C -- A -- C .....)

代码中第一种情况相同,但实际跳转顺序却不同,

第一次A -- B -- C 实际跳转完成之后,当从C回到A(A在创建之后,onNewIntent(...)也可以接到其他Activity跳转的intent数据)后,再从A跳B时,却跳到了C页面,依次循环,整个过程中,B只是在一开始创建时出现了一次,之后从A都是直接跳C,A当然是单实例的,但是C也只创建了一次,相当于是单实例

多次跳转按物理返回键时:

如果当前页面是A,则A销毁,出现C,接着C销毁,出现B,B销毁,应用程序结束

如果当前页面是C,则C销毁,出现B,接着B销毁,出现A,A销毁,应用程序结束

返回键的实际跳转情况属于正常,因为A的taskId, 与B,C不同,不在同一栈中

STM32H743+YT8512C以太网通信实战:CubeMX与LWIP配置详解 本文详细解析了基于STM32H743微控制器与YT8512C PHY芯片的以太网通信实战方案。通过CubeMX工具进行RMII接口、MPU、时钟树等关键硬件配置,并重点阐述了如何修改LWIP协议栈驱动代码以适配YT8512C芯片,解决了LAN8742驱动不兼容的问题。文章提供了从工程创建、代码适配到调试验证的完整步骤,帮助开发者快速实现稳定可靠的嵌入式网络连接。 阅读详情

相关推荐

XPe开发初体验(一)XPe概述

XP Embedded是微软Windows Embedded产品线中非常重要的一环,不过比起大名鼎鼎的Windows Embedded CE,XPe显得过于低调了。在接下来的一段时间里,我希望能够用六篇的篇幅来描述一下XPe的整个开发过程。这个系列文章主要是针对有Windows编程经验,但是没有嵌入式开发经验的开发者,提供一些概念和开发过程的初步介绍。XP Embedded是一个基于Windo

aawolf = new Mobile.MVP 1万+

Android 开发之Activity的启动模式-SingleTop

接下来,介绍下Activity的另一种启动模式- 栈顶复用模式()singleTop模式,它的表现几乎和standard模式一模一样,一个singleTop Activity 的实例可以无限多,唯一的区别是如果在栈顶已经有一个相同类型的Activity实例,Intent不会再创建一个Activity,而是通过onNewIntent()被发送到现有的Activity。 分两种处理情况:须要创建的Activity已经处于栈顶时,此时会直接复用栈顶的Activity。不会再创建新的Activity;若须要创建的A

bugyinyin的博客 3218

描边盛开火玫瑰

python描边盛开火玫瑰 代码如下 import turtle as t t.setup(800,800) t.hideturtle() t.speed(11) t.penup() t.goto(50,-450) t.pensize(5) t.pencolor("black") t.seth(140) t.pendown() t.speed(10) t.circle(-300,60) t.fd(100) #jiaodu80 #1ye t.seth(10) t.fd(50) t.fillcolor("gr

weixin_50973371的博客 2062

android深入解析Activity的launchMode启动模式,Intent Flag,taskAffinity

最近看到一篇文章讲launchMode,想到以前的一次面试,就问了这一个问题,最基本的大家都知道,但是详细的我就迷糊了,最终失败了,所以在此总结一下,希望能够帮助一下大家LaunchMode  launchMode分为四种:    standard  standard启动模式为最基本的启动模式,默认为该种启动模式,特点就是每当发送一个intent请求打开该activity时,都会创建一个新的ac

Shawn_Dut的专栏 1万+

ArcGIS标注太乱?手把手教你用‘要素分类标注’搞定河流分级显示

本文详细介绍了如何在ArcGIS Pro中使用要素分类标注功能实现河流分级显示,解决标注混乱问题。通过数据预处理、分类标注规则定义和高级参数调优,帮助用户打造层次分明、专业清晰的水系地图,提升地图信息传达效率。

weixin_30326741的博客 474

宝骏kiwi 630 730 560 E100 E200 E300 310 510 610 330 530维修手册电路图资料线路图接线图更新

2020-2022年宝骏RS-3维修手册和电路图。2020-2022年宝骏RS-3维修手册和电路图。2019-2021年宝骏RC-6维修手册和电路图。2019-2021年宝骏RC-6维修手册和电路图。2019-2020年宝骏RS-5维修手册和电路图。2019-2020年宝骏RS-5维修手册和电路图。2019-2020年宝骏RM-5维修手册和电路图。2019-2020年宝骏RM-5维修手册和电路图。2019-2021年宝骏510维修手册和电路图。2019-2021年宝骏510维修手册和电路图。

weixin_45821055的博客 1771

android四种加载模式 singletask、singletop

在项目开发过程中,遇到以下情况:在主界面activity A中跳转到登录界面activity B中,用户可以选择登录或者直接返回,登录需要刷新activity A ,直接返回则直接返回刚才的实例 。解决方法:       1、activity A设置为singletop,在其他页面返回A的时候在设置intent的flag标志位Intent.FLAG_ACTIVITY_CLEAR_TOP,这样会

adfsadsfa的专栏 2281

中小型微服务系统 硬件设备如何部署,QPS大概多少

作为一名合格的开发工程师,不仅仅要在前期开发阶段对业务和技术有深入了解,知道选用哪种合适的技术,业务如何拆分,还要思考后期线上环境,资源,延迟,性能等如何优化维护以及分布式系统一些线上生产的一些问题。 本篇主要针对之前了解的情况对硬件设备资源做一个简单的介绍: 首先分布式系统线上实践问题,我们应该对公司的流量,各个服务,网管,注册中心应该如何部署,部署多少台机器才合适,每台机器的配置如何,每天整体流量有多少,高峰期的请求量有多少,你的整体系统是否扛得住(注:很多公司现在直接使用K8S docker 实现

wangxuelei036的博客 1万+

Android launchMode的特殊行为

Android launchMode的特殊行为1.被其他app调起时,launcheMode的行为2.点击Home键,再点击app图标,回到app的行为 1.被其他app调起时,launcheMode的行为 被调起的app如果没有初始化,那么Application一定会被初始化,且一定为新的进程 如果launceMode是standard或者singleTop的,那么Activity是在当...

依生依世 284

ffmpeg(一) ffmpeg+QT开发环境搭建

(exe 程序编译的时候只需要包含 xxx.dll.a 静态导入库,运行的时候才需要 xxx.dll 文件)这个 .pro 文件的配置,是指导程序编译的时候,可以找到对应的动态库。值得一提的是,在Windows中,静态链接库(Static Link Library)的扩展名也是.lib、.dll.a。其实只要你掌握了FFmpeg,也可以很快上手其他音视频开发库,因为底层原理都是一样的,你最终操作的都是一样的数据,比如MP3、MP4文件。导入库:不包含函数的具体实现代码(函数的具体实现代码存储在dll中)

小道士写程序 8204

ultralytics.data.utils——utils.py子模块代码详读

ultralytics.data.utils——utils.py子模块代码详读

Together_CZ的博客 1720

东南大学计科院夏令营经验:PALM实验室硬核考核全流程复盘

在计算机视觉与机器学习等人工智能技术快速迭代的今天,编程能力、数学功底与科研思维是衡量学习者竞争力的核心指标。而严格的算法训练与逻辑表达,恰恰是技术人才从理论走向工程实践的关键桥梁。从数据结构到概率论,从模型设计到项目落地,每一个环节都在考验候选人的综合素养。对于希望进入顶尖图像处理实验室深造的同学而言,深刻理解这些基础概念并能在真实场景中灵活运用至关重要。本文基于东南大学计算机科学与工程学院夏令营及PALM实验室的完整考核经历,复盘从材料准备、导师沟通、机试面试到优营抉择的全过程,拆解编程、数学、英语等硬

weixin_33767813的博客 417

(BS ISO 11898-1:2015)CAN_FD 总线协议详解1- 基本概念描述

本文对can总线协议做了详细的讲解,can协议里面的每一个知识点都做了详细且举一反三的论述,读了本文可以不用读can协议了。

zhangziranzm的博客 2314

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

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

LiuHe 27万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

详解Android Activity的四种launchMode

 launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里。这里简单介绍一下task的概念,task是一个具有栈结构的对象,一个task可以管理多个Activity,启动一个应用,也就创建一个与之对应的task。 Activity一共有以下四

夏天的夏,夏天的天。 6388

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Android Activity的四种LaunchMode!!!

在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity。这需要为Activity配置特定的加载模式,而不是使用默认的加载模式。加载模式分类及在哪里配置Activity有四种加载模式:standardsingleTopsingleTasksingleInstance设置的位置在AndroidManifest.xml文件中activity元素的android:launch

Android_Tutor的专栏 2万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Actvity的四种Launchmode

我们今天讲的是Activity的四种Launchmode. launchmode在Activity跳转中扮演者多个角色,它可以决定是否生成新的Activity实例,是否重用以 存在的Activity实例,是否和其他的Activity共用一个task里,这里简单的介绍下task,task是一个具有 栈结构的对象,一个task能有多个Activity,启动一个工程,也就创建了与之对应的task。

limiaoaichendihai的博客 575

android中Activity的四种launchMode

Android中activity的四种启动模式: 1、

出头天 2913

2024年Android Activity的四种LaunchMode!!!,面试过关技巧

其实客户端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。(以下体系的复习资料是我从各路大佬收集整理好的)历时半年,我们整理了这份市面上最全面的安卓面试题解析大全包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。

2401_84520093的博客 627

深入理解Android Activity的四种LaunchMode

理解Activity的四种启动模式对于开发Android应用至关重要。每种模式都有其特定的应用场景和优缺点,合理选择可以显著提高应用的性能和用户体验。通过本文的详细讲解和实例演示,希望读者能够更深入地掌握这些模式,并在实际开发中灵活运用。

孔乙己大叔的博客 1329

Android中的launchMode

Android中的LaunchMode 写这篇文章主要参考https://www.bilibili.com/video/BV1CA41177Se 和《Android开发艺术探索》这篇文章是我学习LaunchMode的学习笔记 众所周知,Android是使用回退栈来管理Activity的,而根据Android中的LaunchModeActivity入栈的方式不同 Android中的LaunchMode分为四种:Standard,SingleTask,SingleInstance,SingleTop 首先介绍下

m0_50262214的博客 655

android 如何使用LaunchMode

今天,简单讲讲android的启动模式LaunchMode,以及如何根据自己的需要设置LaunchMode。 这个其实也很简单,我每次使用android studio新建activity时,系统都使用了默认的LaunchMode,即standard模式的LaunchMode。但是自己一直没有写博客总结这个功能,主要是没有必要。直到最近需要做一个功能,即App切换后台后,再次进入App时,需要跳到...

谢岩的博客 1808
上一篇: 使用Vitamio打造自己的Android万能播放器
下一篇: 【Android基础】Activity的启动模式(android:launchMode)
stonenotes123
博客等级 码龄15年 30粉丝 176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值