Activity的四种加载模式详解(standard singleTop singleTask singleInstance)

(Activity一)启动模式(standard, singleTop, singleTask, singleInstance)的应用场景及对应的任务栈(Task)变化? standard:就像在抖音里,每点开一个视频,就新开一个详情页窗口,用户可以逐个关闭。singleTop:就像用户已经在抖音首页(栈顶),这时收到一个推送,点进去还是那个首页,只是内容刷新了。singleTask:就像字节跳动的‘账号管理’中心,它是一个独立的功能模块(独立任务栈)。无论用户是从抖音、今日头条还是西瓜视频(不同任务栈)点击‘设置头像’跳转过来,都会直接进入这个中心。当在中心里完成修改后,按返回键,会直接回到原来跳转过来的App(原任务栈),而不是在中心里层层返回。:就像一个全公司。 阅读详情

最简单的理解

activity的四种加载模式

在android的多activity开发中,activity之间的跳转可能需要有多种方式,有时是普通的生成一个新实例,有时希望跳转到原来某个activity实例,而不是生成大量的重复的activity。加载模式便是决定以哪种方式启动一个跳转到原来某个Activity实例。

在android里,有4种activity的启动模式,分别为: standard, singleTop, singleTask和singleInstance, 其中standard和singleTop类似, singleTask和singleInstance类似, 用法如下:

(1).standard和singleTop

这两种加载模式下, 同一个task中可以存在一个activity的多个实例, 并且可以位于activity栈的任意位置。

先举个例子:

假设目标task的activity栈为: A->B->C->D(栈底->栈顶)

在程序中调用startActivity(D) 

如果D是standard模式, 则activity栈变为:

A->B->C->D->D, 也就是会重新创建一个D实例

如果D是singleTop模式, 则activity栈变为:

A->B->C->D, 不会创建D实例, 就是说如果D在目标task 的activity栈的栈顶, 则不会创建新的实例, 而是调用D的onNewIntent()方法, 反之如果D不在目标task 的activity栈的栈顶, 则会重新创建一个D实例

(2). singleTask和singleInstance

这两种加载模式下, 同一个task中只会存在一个activity的实例, 如果通过startActivity()启动,则调用onNewIntent()方法, 而不是创建一个新的实例。这两种模式下, activity实例均位于activity栈的栈底。

这两种加载模式的区别:

假设一个Activity的实例A 采用如下两种加载模式:

singleTask:

   如果A调用startActivity(B)启动B实例, 则A和B位于同一个task中。

singleInstance:

   如果A调用startActivity(B)启动B实例, 则系统会自动给intent添加一个属性FLAG_ACTIVITY_NEW_TASK, 将B实例放入到一个新的task中, 也就是说A实例所在的task中只能有A自己, 不能存在其他实例


Android Activity启动模式之singleTop实例详解 主要介绍了Android Activity启动模式之singleTop,结合实例形式较为详细的分析了singleTop模式的功能、使用方法与相关注意事项,需要的朋友可以参考下 立即下载

相关推荐

从KVM虚拟化到Openstack云化架构综述

目录 摘要 OpenStack的虚拟化技术 OpenStack架构介绍 Nova Swift KeyStone Neutron Glance Cinder Ceilometer Heat 摘要 这两年的工作中,接触到公有云和私有云的项目还不少。起初对于Openstack的了解,仅停留在其几大组件的交互上,如Nova、Neutron、Glance等,以及对各大云厂商功能点上...

liyunpeng229的博客 2051

15 - Activity四种加载模式之SingleTop

转载注明出处:http://blog.youkuaiyun.com/eana_don/ 资料参考:官网API 通常情况下的Activity,默认是standard模式,同一个activity不断调用也是创建不同的实例。Task用来保存Activity,以栈的形式列队,先进后出。当一个Activity启动时,就会被压入task栈。而当用户返回时,则该Activity会被弹出栈,以这种形式来达到返回之前Act

依那的专栏 1963

STM32解析航模遥控器的PPM信号

使用STM32对航模遥控器的PPM信号进行解析

qq_44343584的博客 9734

【Activity】Activity的启动模式:SingleTop

目录 1. 概述 2. 场景1:MainActivity->SecondActivity->SecondActivity 2.1 启动MainActivity 2.1.1 生命周期 2.1.2 Activity栈 2.2 MainActivity中启动SecondActivity 2.2.1 生命周期 2.2.2 Activity栈 2.3 SecondActivit...

明朗晨光的专栏 3758

用deepseek对GPU服务器进行压力测试

利用 DeepSeek 模型对 GPU 服务器进行压力测试,核心思路是通过,验证 GPU 服务器在计算、显存、网络等维度的承载能力,同时观察稳定性与性能瓶颈。

weixin_42795092的博客 1610

关于Arduino中的常用函数

一、I/O函数 二、时间函数 三、数学函数 abs 返回其参数的无符号值 【abs(12)返回12,abs(-12)也返回12】 constrain 限制一个数字以阻止它超出范围。第一个参数是被限制的数字,第二个参数是范围区间的开始,第三个参数是允许的数字范围区间的结尾。 【constrain(8,1,10)返回8,constrain(11,1,10)返回10,constrain(0,1,10)返回1】 map 将一个范围内的数字映射到另一个范围。第一个参数是要映射到数字,第二个和第三个参数是from范围(

TREE的博客 7323

standard、singleTop、singleTask和singleInstance四种Activity启动模式的理解

之前自学android的时候,单从视频和书本上对这四种启动模式仅仅有了初步的字面上的理解。最近实战了下,也对这四种启动模式有了比较清晰的概念。 首先说下什么是Activity,按照我的理解,我们在手机上看到的每一个页面都是一个Activity,包括系统的桌面,也是一个Activity。 要启动一个Activity有四种模式:standard(标准启动模式)、singleTop、singleTask、singleInstance。 注: Aty1_1和Aty2_1为两个不同的Activity,At.

学无止境~ 1993

大疆Livox Mid-70雷达的使用

一、前期准备 (一)、使用Livox Viewer测试雷达 1、设置静态IP sudo ifconfig enx081f7152092a 192.168.1.50 查看IP是否设置成功 lacyexsale@lacyexsale-KLV-WX9:~$ ifconfig enx081f7152092a Link encap:以太网 硬件地址 08:1f:71:52:09:2a inet 地址:192.168.1.50 广播:192.168.1.255 掩码:255.255.25

LacyExsale的博客 1万+

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

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

bugyinyin的博客 3218

ABB RobotStudio 和 S7-PLCSIM Advanced V5.0 搭建虚拟通信环境,实现 PLC 对机器人布尔量、数字量和模拟量的控制。

本教程详细介绍了如何利用ABB RobotStudio和S7-PLCSIM Advanced V5.0搭建虚拟通信环境,实现PLC对机器人的布尔量、数字量和模拟量控制。主要内容包括:在TIA Portal V20中配置PLC项目并编写通信程序;通过S7-PLCSIM Advanced创建虚拟PLC运行环境;在RobotStudio中设置机器人PROFINET通信;以及建立虚拟网络连接并进行功能测试。该方案适用于工业自动化虚拟调试,可显著降低现场调试风险。操作需注意软件版本兼容性、网络配置及信号映射准确性,最

CHUXUEZHE8210的博客 2515

知识图谱实战应用8-从文本关系抽取到知识图谱关系构建流程贯通

大家好,我是微学AI,今天给大家介绍一下知识图谱实战应用8-从文本关系抽取到知识图谱关系构建流程贯通。我们从文本数据中采集到关键信息,并抽取出其中的关系信息,然后在存入图数据库中,整个过程实现自动化,我这里将举一个文本例子进行抽取。 对于知识图谱的构建是将实体、概念和它们之间的关系都以图表形式呈现出来的一种数据结构。要构建一个知识图谱,需要从不同的数据源中采集到相关信息,并将这些信息整合在一起,最终形成一个全面而且精确的知识图谱。

微学AI的博客 2545

Android 四种加载方式详解(standard singleTop singleTask singleInstance)

Android之四种加载方式 (http://marshal.easymorse.com/archives/2950 图片) 在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity。 这需要为Activity配置特定的加载模式,而不是使用默认的加载

tiancizhenai的专栏 5万+

YOLOv11改进 | Neck篇 | 独创HFPN利用分层特征融合块HFFB模块融合多层次特征改进yolov11(全网独家创新)

本文给大家带来的最新改进是利用分层特征融合块HFFB创新yolov11的neck部分我称之为HFPN,这个模块可以融合局部特征、全局特征、中间特征将三种特征融合在一起辅助yolov11进行检测,经过我的设计分为三种可以针对大目标、小目标、标准目标的检测方式均不同,大家可以根据自己的数据集进行不同的选择,本文的内容为我独家创新。YOLOv11改进系列专栏——本专栏持续复习各种顶会内容——科研必备目录一、本文介绍二、原理介绍三、核心代码四、添加方法4.1 修改一4.2 修改二4.3 修改三4.4 修改四。

Snu77的博客 5210

Android四种启动模式(standard,singleTop,singleTask,singleInstance)

Android四种启动模式(standard,singleTop,singleTask,singleInstance)为什么要研究启动模式任务栈四种启动模式Standard 标准模式SingleTop 栈顶复用模式SingleTask 栈内复用模式SingleInstance 单实例模式 为什么要研究启动模式 1.有时候我们的App需要生成给其他App调用的Activity,例如浏览器应用,照相机应用。 2.解决生成重复页面等等Bug。 3.任务栈过深的时候,避免一直按返回键也退不回想要的页面。 任务栈 任

u012211003的博客 4687

老版QQ原生表情gif动态

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

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

彻底明白Activity启动模式-SingleTop、SingleTask、SingleInstance具体使用场景

启动模式启动模式是什么有这样的场景: 当我们使用App的时候,呈现出一个Activity,按下返回键(不考虑重写返回键事件),常常就回退到上一个打开的Activity或者退出App。 //重写返回按键事件 public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BA

我早就想,要这样载着你,翻山越岭 6万+

Devexpress16.2.6破解工具

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

Android 四种加载方式详解(standard、singleTop、singleTask、singleInstance)

转自:http://blog.youkuaiyun.com/biangren/article/details/7551046

冷秋魂的专栏 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Android安卓 Activity四种启动模式(launchMode) standard, singleTop, singleTask, singleInstance

启动模式的重要性 Android编程中经常涉及到页面的切换,启动一个新的页面(或者说Activity)的时候需要为其指定合适的“启动模式”。指定的启动模式不合适,会出现类似下面这种奇怪的效果: 你拿起QQ切换了一个新的账号,一直按返回却没有退出程序,而是又回到了旧帐号对应的页面… 你拍完照进相册看了一下刚刚拍的照片又退出,却发现拍照界面出现了黑屏… 这些情况的出现当然可能和其他的原因相关,...

qq_44861716的博客 2700

Android 四种加载方式详解(standard singleTop singleTask

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

机会是留给有准备的人 9375

区分Activity的四种加载模式 standard singleTop singleTask singleInstance

参考网址:http://marshal.easymorse.com/archives/2950 【阅读建议:可以先看图,图看的七八分明白了,再去看文字介绍。】 在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity。 这需要为Act

YorkCai的专栏 842

Activity的四种启动模式(standard、singleTop、singleTask、singleInstance)

Activity有四种启动模式 1、standard 2、singleTop 3、singleTask 4、singleInstance

小小小森屿的博客 2936

Activity启动模式图文详解:standard, singleTop, singleTask 以及 singleInstance

博客目录:http://www.jcodecraeer.com/plus/list.php?tid=16 英文原文:Understand Android Activity's launchMode: standard, singleTop, singleTask and singleInstance  另外关于启动模式还有篇很好的文章:Android中Activity四种启动模式和taskA

Android移动开发者的专栏 1785

Android四种启动模式详解Standard,SingeTop,SingleTask,SingleInstance

Android四种启动模式详解 图解 安卓中Activity(活动)的四种启动模式,对应实际项目中不同场景的使用至关重要。因此如何使用这四种启动模式,对于Android开发者来说是十分重要的。安卓中使用任务栈stack来管理Activity的实例,栈的特点是“先进后出,后进先出”。 - 举个抽象的例子:洗碗的时候,碗会一个一个的叠着。所以第一个洗干净的碗往往是最后用来盛饭的,因为它...

知琦然的博客 1079

Activity启动模式: standard、singleTop、singleTask、singleInstance具体使用场景

启动模式是什么 有这样的场景: 当我们使用App的时候,呈现出一个Activity,按下返回键(不考虑重写返回键事件),常常就回退到上一个打开的Activity或者退出App //重写返回按键事件 public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BAC...

linxinfa的专栏 1281

Activity的四种启动模式——standard、singleTop 、singleTask 、singleInstance

Android Activity共有四种启动方式,分别·有standard、singleTop 、singleTask 、singleInstance 。每种启动方式都有自己的特点接下来为大家分别介绍四种启动方式,在介绍之前首先要会配置 只要设置AndroidManifest.xml中的activity标签的launch Mode属性。 1、standard 此模式是系统默认的,也就是在不设

lm121380的博客 1767
上一篇: 可缩放性ImageView(可以放大缩小)
下一篇: 调试时报错Thread::Current() != GetDebugThread()
Lin_XiJun
博客等级 码龄9年 3粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值