android activity四种启动模式

Android 面试(一):说说 Activity 的四种启动模式 2、设置为 singleTop 的启动模式,当 Activity 的实例已经存在于 Task 的栈顶,我们可以在哪个回调中处理新的 Intent 协带的参数?->B -> C -> D -> B,此时栈内变成了 A -> B。一旦该模式的 Activity 实例已经存在于某个栈中,任何应用再激活该 Activity 时都会重用该栈中的实例,是的,依然是调用。Activity 的实例,也会创建新的实例,即:A -> B ->A,此时栈内为 A -> B -> A,但 A -> B ->B。 阅读详情

http://www.jb51.net/article/76807.htm


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

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

一、启动模式介绍

  启动模式简单地说就是Activity启动时的策略,在AndroidManifest.xml中的标签的android:launchMode属性设置;

  启动模式有4种,分别为standard、singleTop、singleTask、singleInstance;

讲解启动模式之前,有必要先讲解一下“任务栈”的概念;

  任务栈

  每个应用都有一个任务栈,是用来存放Activity的,功能类似于函数调用的栈,先后顺序代表了Activity的出现顺序;比如Activity1-->Activity2-->Activity3,则任务栈为:

二、启动模式

(1)standard模式(默认):每次激活Activity时(startActivity),都创建Activity实例,并放入任务栈;

我们平时直接创建的Activity都是这种模式的Activity,这种模式的Activity的特点是:只要你创建了Activity实例,一旦激活该Activity,则会向任务栈中加入新创建的实例,退出Activity则会在任务栈中销毁该实例。

(2)singleTop模式:如果某个Activity自己激活自己,即任务栈栈顶就是该Activity,则不需要创建,其余情况都要创建Activity实例;


(3)singleTask模式:如果要激活的那个Activity在任务栈中存在该实例,则不需要创建,只需要把此Activity放入栈顶,并把该Activity以上的Activity实例都pop;

如果任务栈中存在该模式的Activity实例,则把栈中该实例以上的Activity实例全部移除,调用该实例的newInstance()方法重用该Activity,使该实例处於栈顶位置,否则就重新创建一个新的Activity实例。

(4)singleInstance模式:如果应用1的任务栈中创建了MainActivity实例,如果应用2也要激活MainActivity,则不需要创建,两应用共享该Activity实例;

当该模式Activity实例在任务栈中创建后,只要该实例还在任务栈中,即只要激活的是该类型的Activity,都会通过调用实例的newInstance()方法重用该Activity,此时使用的都是同一个Activity实例,它都会处于任务栈的栈顶。此模式一般用于加载较慢的,比较耗性能且不需要每次都重新创建的Activity。

SingTask的应用:

可以用来退出整个应用。

将主Activity设为SingTask模式,然后在要退出的Activity中转到主Activity,然后重写主Activity的onNewIntent函数,并在函数中加上一句finish。

附:

退出单个Activity方法:

调用finish

  杀死该进程:killprocess(Process.mId)

终止正在运行的虚拟机:system.exit()

退出整个应用:

  制造抛异常导致整个程序退出

  将所有的activity放入到一个list中,然后在需要退出的时候,将所有的activity,finish掉

  通过广播来完成退出功能

通过广播来完成退出功能,具体实现过程是这样的:在每个Activity创建时(onCreate时)给Activity注册一个广播接收器,当退出时发送该广播即可。大概的代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@Override
protected void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
IntentFilter filter = new IntentFilter();
filter.addAction( "finish" );
registerReceiver(mFinishReceiver, filter);
……
}
private BroadcastReceiver mFinishReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if ( "finish" .equals(intent.getAction())) {
Log.e( "#########" , "I am " + getLocalClassName()
+ ",now finishing myself..." );
finish();
}
}
};

  把上面的代码写在一个基类里面,这样,在需要退出的地方调用close,发送广播,每个Activity接收到广播后,就会将自己finish掉。

以上所述是小编给大家分享的Android入门之Activity四种启动模式(standard、singleTop、singleTask、singleInstance),希望大家喜欢。


Android 中Activity的四种启动模式 Activity的android:launchMode属性: standard:标准模式,默认 singleTop:Task栈顶复用模式 singleTask:Task栈内复用模式 singleInstance:全局单例模式 Activity的管理模式: standard:Activity是由任务栈管理的,每启动一个Activity,就会被放入栈中,按返回键,就会从栈顶移除一个Activity。 具体详解: standard是默认的启动模式,即标准模式,每启动一个Activity,都会创建一个新的实例 阅读详情

相关推荐

activity的四种启动模式

activity 的四种启动模式介绍,分别详细的介绍启动模式的作用和用法等

Android的四种启动模式

Android的四种启动模式

weixin_44715716的博客 9017

大疆2025八月份校招硬件工程师笔试真题A卷题目分享

大疆2025年笔试真题解析

weixin_63651698的博客 1568

Android Activity的四种启动模式

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

黄林晴 2万+

国产FPGA开发实战:紫光同创编程软件中的约束文件详解与常见问题

本文详细解析了紫光同创FPGA编程软件中约束文件的关键配置技巧与常见问题。通过基础架构解析、时钟约束实践、物理约束调控及典型问题排查指南,帮助开发者高效掌握国产FPGA开发中的约束文件应用,提升开发效率与设计稳定性。

gin88的博客 906

MT4量化交易入门:手把手教你用MQL4编写第一个外汇EA(含完整代码)

本文详细介绍了如何使用MQL4在MT4平台上编写第一个外汇EA,涵盖从开发环境配置到均线交叉策略实现的完整流程。通过手把手教学和完整代码示例,帮助量化交易新手快速掌握外汇自动化交易的核心技术,实现高效的MT4量化交易系统。

mmm90的博客 527

Android中Activity的四种启动模式

Android中Activity的四种启动模式 Activity启动模式一共有4种,分别是standard、singleTop、singleTask和singleInstance,可以在AndroidManifest.xml中通过给 标签指定android:launchMode 属性来选择启动模式。 Android使用任务栈来管理Activity的。任务栈Task,是一种用来放置Activity实例的容器,以栈的形式进行盛放,Activity实例的生成与销毁伴随的就是Task的入栈和出栈,处于栈顶的Act

weixin_44877390的博客 528

Postman调试海康ISAPI接口全记录:从鉴权失败到成功修改设备名的踩坑指南

本文详细记录了使用Postman调试海康ISAPI接口的全过程,从鉴权失败到成功修改设备名的实战经验。涵盖Digest认证机制、XML请求体构造、常见错误排查及代码实现过渡,帮助开发者高效解决海康设备集成中的各种问题。

weixin_42620913的博客 660

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

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

qq_44861716的博客 2700

告别底噪和发热:TPA3255的PCB布局与散热设计保姆级教程(附嘉立创EDA文件)

本文详细解析TPA3255 Class D音频功放的PCB布局与散热设计,提供从电源系统分层架构到热管理系统的全流程优化方案。通过实战案例展示如何消除底噪、降低发热,并附嘉立创EDA文件,助力工程师快速设计高性能音频功放。

weixin_29208077的博客 376

074.多任务学习:在YOLO基础上同时进行分割、关键点检测

本文探讨了在YOLOv5模型中实现检测、分割和关键点多任务的技术方案。通过分层特征抽取策略(检测用深层、分割用浅深融合、关键点用中层)解决特征共享问题;采用不确定性加权方法自动平衡多任务损失;设计了支持三种标签的数据流处理方式;并分享了推理部署时的后处理技巧。实践表明,合理的多任务设计可以提升主任务性能,但需权衡标注成本和推理效率。最终方案选择在训练时引入分割作为辅助任务,推理时仅保留检测和关键点,实现了检测mAP提升2.3%的优化效果。

2603_95664987的博客 45

Android——Activity的四种启动模式

简介: 我们一个程序会存在不同的Activity,也会存在许多实例,这些实例就会进入任务栈中,任务栈采用“后进先出”的算法,例如:我们使用手机,打开QQ,在QQ界面进入一个聊天界面,此时存在两个Activity实例,假设我们按一下back键我们将回到QQ主界面,在按一下back键我们将回到屏幕主界面,这就是“后进先出”。 Activity的四种启动模式 standard:系统默认使用此启动模式,特性:无论实例存在与否,每启动一次就创建一个实例,如下图所示 singleTop:此启动方法分为两种情况。 一

FranzLiszt的博客 2467

[AI工具评测] 为什么功能全面的 Kimi Claw,最终还是被放弃?

《KimiClaw:功能整合与体验落差的AI工具实践》 KimiClaw作为集LLM、Agent、云端执行和SaaS分发于一体的AI工具,理论上具备个人开发者所需的全栈能力:原生整合大模型与Agent、支持云端Docker部署、可生成Web应用并通过飞书协作。然而实际高频使用中暴露三大核心问题:响应延迟导致思考节奏断裂(非流式输出)、云端黑箱执行缺乏可控性(无法实时干预)、系统稳定性不足(网关和隧道偶发故障)。这些体验落差表明,功能完整性不等于使用高效性——对开发者而言,实时响应、执行透明度和系统可靠性比自

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 536

Android activity四种启动模式

Android activity四种启动模式 思维导图 概述 四种启动模式分别为Standard,SingleTop,SingleTask,SingleInstance。其实在网络上已经有很多博客对其其实都已经有了相当程度的归纳和总结。但是毕竟别人的,中国人相比自己家的孩子,邻居家的孩子永远更加诱人。在适当程度上看了看别人所写的内容,我还是打算写一些自己的感悟。 本来一如既往想要吐槽一些我所看见的同事的工作方式,不过今天,感觉自己缺乏心境,所以还是在今天的下一篇博客上一吐为快。 四种模式说到底,就是为了

qq_31433709的博客 1159

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

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

微学AI的博客 2545

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Android入门:Activity四种启动模式

一、启动模式介绍 启动模式简单地说就是Activity启动时的策略,在AndroidManifest.xml中的标签的android:launchMode属性设置; 启动模式有4种,分别为standard、singleTop、singleTask、singleInstance; 讲解启动模式之前,有必要先讲解一下“任务栈”的概念; 任务栈 每个应用都有一个任务栈,

xiazdong 1万+

OV9734 DATASHEET,完整规格书

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

Android中Activity四种启动模式

Activity四种启动模式详解 activity有四种启动模式,分别为standard,singleTop,singleTask,singleInstance。如果要使用这四种启动模式,必须在manifest文件中标签中的launchMode属性中配置,如: <activity android:name=".app.InterstitialMessageActivity" android:...

aa2781165的博客 277

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

WINCC7.3破解文件

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

Android之Activity的四种启动模式

实例背景:用于四个页面跳转 准备工作 activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.co...

阿宁的博客 1777

Android学习之Activity的四种启动模式与特点

Acitivty的四种启动模式与特点activity有四种启动模式,分别为: standard singleTop singleTask singleInstance 可以和activity的flags(通过Intent对象调用FLAG_ACTIVITY_* ,*代表常量)结合使用。默认的启动模式为standard。如下表所示,模式主要分为两组:”standard ”和“ singleTop ”一

一大三千的博客 5453

对于安卓开发中activity的四种启动模式的简单解析

对于安卓开发中activity的四种启动模式的简单解析为什么使用启动模式开始使用启动模式四种启动模式介绍四种启动模式使用场景 为什么使用启动模式   在我们安卓开发过程中大家一定遇到过各种小问题,让人摸不着头脑。比如在我们编写好了登陆页面之后,模拟登陆,在网速比较慢时就会着急多点几次登陆按钮,之后进入主页面之后就会发现按手机的返回键时会返回好几个主页面,这就是我们在点击登陆时创建了太多的主页面的实例导致的小问题,但这种问题修改一下主页面的启动模式就可以很好的解决。 开始使用启动模式   有过android

qq_41167962的博客 459

Android 中 Activity 的四种启动模式

介绍了Android常见的Activity启动模式

m0_61945436的博客 1064

安卓Activity四种启动模式解析

前言:在介绍Android中的Activity四种启动模式之前,先说明一下Application,Task和Process的概念 Application:Application中,一个应用就是一个组组建的集合(activity ,receiver ,provider ,service ) Task:只针对于activity的概念,task是一组关联activity的集合,task是可以跨应用的...

Aiden-Y 1709

Android下的Activity的四种启动模式

<activity>元素的launchMode属性可以设置四种不同的加载模式: "standard" (默认值) "singleTop" "singleTask" "singleInstance"

YiRanAiNi_的博客 490

Android——Activity四种启动模式

原文地址:http://blog.youkuaiyun.com/sapce_fish/article/details/52672495 Android中Activity的启动方式主要有四种 standard的启动方式 singleTop的启动方式 singleTask的启动方式 singleInstance的启动方式 demo下载地址:http://do

sapce_fish的博客 1115
上一篇: Android 版本更新下载自动安装APK,并解决Android6.0,7.0安装失败的问题
下一篇: Android-PullToRefresh 使用心得
code_dream_wq
博客等级 码龄10年 51粉丝 199原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值