activity启动模式介绍

【android开发-05】android中activity的启动模式介绍 android中activity的启动模式原理和运行代码的参考例子 阅读详情


一、android任务栈

  • android任务栈又称为Task,它是一个栈结构,具有后进先出的特性,用于存放我们的Activity组件
  • 我们每次打开一个新的Activity或者退出当前Activity都会在一个称为任务栈的结构中添加或者减少一个Activity组件, 一个任务栈包含了一个activity的集合, 只有在任务栈栈顶的activity才可以跟用户进行交互
  • 在我们退出应用程序时,必须把所有的任务栈中所有的activity清除出栈时,任务栈才会被销毁。当然任务栈也可以移动到后台, 并且保留了每一个activity的状态. 可以有序的给用户列出它们的任务, 同时也不会丢失Activity的状态信息
  • android通过ActivityRecord、TaskRecord、ActivityStack、ActivityStackSupervisor,ProcessRecord有序地管理每个activity

二、启动模式

1、标准启动模式 — Standard

该模式是启动的默认模式,每次启动Activity都会创建一个新的Activity实例,activity会被一次顺序压入栈中

2、栈顶复用模式 — SingleTop

如果要启动的Activity已经在栈顶,则不会重新创建Activity,只会调用该该Activity的onNewIntent()方法。
如果要启动的Activity不在栈顶,则会重新创建该Activity的实例

应用场景

登录页面、WXPayEntryActivity、WXEntryActivity、推送通知栏

3、栈内复用模式 — SingleTask

如果要启动的Activity已经存在于它想要归属的栈中,那么不会创建该Activity实例,将栈中位于该Activity上的所有的Activity出栈,同时该Activity的onNewIntent()方法会被调用

应用场景

程序模块逻辑入口:主页面、WebView页面、扫一扫页面、购物界面、确认订单界面、付款界面

4、全局唯一模式 — SingleInstance

要创建在一个新栈,然后创建该Activity实例并压入新栈中,新栈中只会存在这一个Activity实例
如果已经创建过目标Activity实例,则不会创建新的Task,而是将以前创建过的Activity唤醒

应用场景

来电显示、呼叫界面、锁屏等


三、设置启动模式方式

1、Manifest中静态设置

android:launchMode="singleTask"

2、动态设置

intent.setFlags(...);

几种常见标记位flag

  • FLAG_ACTIVITY_NEW_TASK
    此标记位作用是为Activity指定“singleInstance”启动模式,其效果和在XML中指定相同android:launchMode="singleInstance"
  • FLAG_ACTIVITY_SINGLE_TOP
    此标记位作用是为Activity指定“singleTop”启动模式,其效果和在XML中指定相同android:launchMode="singleTop"
  • FLAG_ACTIVITY_CLEAR_TOP
    具有此标记位的Activity,当它启动时,在同一个任务栈中位于它上面的Activity都要出栈。此标记位一般会和singleTask启动模式一起出现,此情况下,若被启动的Activity实例存在,则系统会调用它的onNewIntent,其效果和在XML中指定相同android:launchMode="singleTask"
【Halcon-2D测量】add_metrology_object_rectangle2_measure 函数功能(用于向2D计量模型中添加旋转矩形(rectangle2类型)计量对象) HALCON算子add_metrology_object_rectangle2_measure解析摘要 该算子是HALCON 2D计量模块的核心算子,用于添加旋转矩形计量对象并配置测量参数。主要功能包括:定义旋转矩形几何轮廓(中心坐标、主轴角度、长短半长);生成垂直于矩形边界的测量区域;设置边缘提取预处理参数(高斯平滑、振幅阈值)。关键注意事项:MeasureLength1必须小于矩形长短半长;角度参数Phi需使用弧度单位;多线程需同步模型句柄。该算子适用于方形螺母、PCB板边框等矩形零件的精密测量,需与a 阅读详情

相关推荐

银河麒麟v10(x86_64)升级openssh实操成功

本文详细介绍了在银河麒麟V10系统上将OpenSSH从8.2p1升级至9.9p2版本的全过程。主要内容包括:系统环境确认、安装telnet备用连接、备份配置、卸载旧版本、安装新版本、服务配置与验证等关键步骤。特别强调了安全注意事项,如必须安装telnet作为备用连接、重要配置备份等。升级后提供了安全加固建议,包括修改SSH端口、禁用root登录等。文章还包含详细的故障排查方法和恢复方案,确保升级过程安全可靠。通过本教程,用户可以顺利完成OpenSSH版本升级,提升系统安全性。

淘淘小窝 1088

【Android】Activity的启动模式

本文介绍了Activity设置启动模式的两种方式,设置android:launchMode属性和设置Intent Flag,Standard——标准模式,SingleTop——栈顶模式,taskAffinity介绍,singleTask——单栈模式,singleinstance——单例模式,singleInstancePerTask——每个任务的单例模式,如何知晓当前所处的活动位置,随时退出程序这些技术。

摸鱼小小虫的博客 5100

Trae CN 使用入门指南

【代码】Trae CN 使用入门指南。

weixin_42551921的博客 8765

Android开发基础——Activity启动模式

可以看出,在SecondActivity中启动FirstActivity时,会发现返回栈中存在FirstActivity的实例,并且是在SecondActivity的下面,于是SecondActivity会从返回栈中出栈,而FirstActivity重新成为了栈顶Activity,因此FirstActivity的onRestart方法和SecondActivity的onDestroy方法会得到执行,此时返回栈中只存在一个FirstActivity的实例,一下back键即可退出程序。

止步听风的博客 3287

Wincc7.5SP1 按钮操作记录(二次确认及语音播报)

Wincc 7.5 SP1 按钮操作记录生成(含二次确认及语音播报) 前面一篇文章已经介绍了“语音播报WINCC报警”,本文是之前功能的延伸,记录按钮操作记录并实现播报。 操作记录及语音播报效果 <创建消息文本> 1. 创建消息文本 消息编号100,消息等级“系统无确认”,消息类型“操作员输入消息”,消息文本“循环水泵启动操作”,其他参数默认。 消息编号101,消息等级“系

徐站的春天 1万+

RT_Thread Studio使用——USB虚拟串口(VCP)

RT_Thread Studio使用——USB虚拟串口(VCP)

weixin_44735205的博客 3374

Activity启动模式

FLAG_ACTIVITY_NEW_TASK 与singleInstance不同点:新的 Task 没有说只能存放一个目标 Activity,只是说决定是否新建一个 Task,而 singleInstance 模式下新的 Task 只能放置一个目标 Activity。FLAG_ACTIVITY_CLEAR_TOP == singleTask :如果同时设置FLAG_ACTIVITY_SINGLE_TOP和FLAG_ACTIVITY_CLEAR_TOP,则直接使用栈内对应Activity;

WXD1234Q的博客 605

Unity URP 深度解析:利用Stencil与RenderFeature实现高效遮挡高亮

本文深入解析Unity URP中利用Stencil与RenderFeature实现高效遮挡高亮的技术方案。通过模板缓冲机制和自定义RenderFeature,开发者可以在保持场景完整性的同时,清晰标识被遮挡物体位置,提升游戏体验。文章详细介绍了Shader编写、URP管线配置及性能优化技巧,并提供了常见问题排查方法。

weixin_29012677的博客 478

Activity的启动模式

介绍Activity的四种启动模式

weixin_62654344的博客 435

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

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

qq_44343584的博客 9733

华为OD机试新系统真题-魔法咒语组合(Java/Py/C++/Go/C/Js)

华为OD机试 新系统真题【魔法咒语组合】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【魔法咒语组合】多语言题解

qq_45776114的博客 667

Activity四种启动模式

启动模式

QG 1174

一次携程酒店 phantom-token 逆向实战复盘(附python纯算)

摘要 本文介绍了通过分析携程酒店列表页面的数据接口,使用Python实现抓取的方法。主要内容包括: 目标站点为携程酒店列表页,通过开发者工具发现关键接口fetchHotelList 将浏览器请求转换为Python代码,包含请求头(headers)、Cookies和POST数据 提供完整的请求示例代码,包含日期参数、城市ID等必要信息 特别声明仅供学习交流使用,禁止商业用途 展示了如何获取酒店列表数据,包括排序筛选等参数设置 该方法可用于研究酒店数据采集,但需要注意遵守网站使用条款。

自成背后的博客 3020

Activity的介绍与启动模式

Activity是Android中四大组件之一(Android四大组件:Activity、Service、Broadcast Receiver、Content Provider)...Activity有四种启动方式。分别是:standard、singleTop、singleTask、singleInstance...

WWW.齐麟的博客.COM 403

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Intent相关FLAG介绍和Activity启动模式

先首先简单介绍下Task和Activity的关系 Task就像一个容器,而Activity就相当与填充这个容器的东西,第一个东西(Activity)则会处于最下面,最后添加的东西(Activity)则会在最上面。从Task中取出东西(Activity)是从最顶端取出,也就是说最先取出的是最后添加的东西(Activity),以此类推,最后取出的是第一次添加的Activity,而Ac

水兵的专栏 3738

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

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

Android Activity的4种启动模式图文介绍

前言 记得第一次探讨Activity的启动模式,是在2017年8月份,那个时候对一年后走出校门的未来很是憧憬,时间真快,已经毕业四个月,工作和生活也都趋于稳定。 一、小前言 相信很多人和我一样,在初学Android甚至初入职场的时候不了解Acticity的启动模式,或者为了面试刷题刷到了,但并不理解启动模式的作用,以及如何正确的使用启动模式而不是所有的都是用默认模式。 二、Activity启动模式简介 Activity有四种启动模式,standard、singleTop、singleTask、si

146

Activity启动模式介绍

Activity启动模式的一些区别与相同点。

CJ_star的专栏 795

Activity的四种启动模式的介绍及其应用场景

应用场景: 1.singleTop适合接收通知启动的内容显示页面。例如,某个新闻客户端的新闻内容页面,如果收到10个新闻推送,每次都打开一个新闻内容页面是很烦人的。聊天的对话窗口, 2.singleTask适合作为程序入口点。例如浏览器的主界面。不管从多少个应用启动浏览器,只会启动主界面一次,其余情况都会走onNewIntent,并且会清空主界面上面的其他页面。之前打开过的页面,打

JustinNick的博客 4903

java activity模式_Android Activity的4种启动模式图文介绍

前言记得第一次探讨Activity的启动模式,是在2017年8月份,那个时候对一年后走出校门的未来很是憧憬,时间真快,已经毕业四个月,工作和生活也都趋于稳定。一、小前言相信很多人和我一样,在初学Android甚至初入职场的时候不了解Acticity的启动模式,或者为了面试刷题刷到了,但并不理解启动模式的作用,以及如何正确的使用启动模式而不是所有的都是用默认模式。二、Activity启动模式简介Ac...

weixin_31655833的博客 269

Activity四大启动模式 简单介绍

Activity四大启动模式 简单介绍启动模式StandardSingleTopSingleTaskSingleInstance启动方式 启动模式 启动模式用好可以避免重复创建相同的Activity,合理节省空间。当点击跳转Activity时,需要创建一个新的实例,并把它存入任务栈内;多次创建,多次添加,一层一层累加。任务栈是后进先出,点击返回先退出刚才点击进入的Activity,按照顺序依次退出...

Asu_yu的博客 562

简单介绍Android中Activity的四种启动模式

standard,(标准模式)默认的启动模式,只要激活Activity,就会创建一个新的实例,并放入任务栈中,这样任务栈中可能同时有一个Activity的多个实例。 singleTop,(栈顶模式)激活Activity时,如果栈顶是这个Activity,就不会创建新的实例;如果栈顶不是这个Activity,则会创建新的实例。 singleTask,(栈内模式)如果栈中存在Activity的实例,则将栈中该实例以上的其他Activity的实例移除,让该Activity的实例在栈顶;如果栈中不存在实例,则创建.

weixin_54429757的博客 209

Activity 四种启动模式介绍

Activity 四种启动模式详细介绍在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。Android总Activity的启动模式分为四种:Activity启动模式设置: <activity android:name=".MainActivi

烈火苍穹的博客 351

Activity四种启动模式介绍

Activity启动方式有四种,分别是: standard singleTop singleTask singleInstance 可以根据实际的需求为Activity设置对应的启动模式,从而可以避免创建大量重复的Activity等问题。 设置Activity的启动模式,只需要在AndroidManifest.xml里对应的标签设置android:launchMode属性,例如:

一个有趣、有料、有内涵的地方! 365

Activity任务栈的使用(启动模式介绍)

Android 任务栈简介 android应用程序通常会被拆分为多个activity,各个activity之间通过Intent进行连接,而android系统通过栈结构保存整个app的activity。合理的任务栈可以提高程序的性能。当一个app启动时,如果环境中不存在改app的任务栈,那么系统就会创建一个任务栈,此后,这个app所启动的activity都将在这个任务栈中被管理,这个栈也被称为一个...

qq_37611061的博客 158

Android开发之Activity四种启动模式的介绍

已经做了很久的Android开发,前些时日朋友在面试的时候被面试官问道Android开发中Activity的几种启动模式,咋一听觉得这也太基础了吧,之前我是做过了解的,但是仔细一回想,原来过了这许久记忆都已经模糊了,工作中基本上都用的默认的standard,即默认模式,下班回来没事,写一篇博客以记之。Activity有四种启动模式<activity android:name=".MainActivi

隔壁小王的博客 1244

android activity启动模式(介绍、图解、应用)

Activity启动模式简介:当应用运行起来后就会开启一条线程,线程中会运行一个任务栈,当Activity实例创建后就会放入任务栈中。Activity启动模式的设置在AndroidManifest.xml文件中,通过配置Activity的属性android:launchMode=”“设置。<activity android:name=".MainActivity" androi

Liyz的专栏 339
上一篇: Activity生命周期看这一篇足够了
下一篇: Activity启动流程分析
浮空over
博客等级 码龄7年 6粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值