分分钟搞定LaunchMode

Android有四种Activity的LaunchMode分别为standard、singleTop、singleInstance、singleTask,大概的应用场景如下:

1、standard,默认的启动模式

2、singleTop,适用于从通知栏进入的界面,比如推送,使用singleTop启动的界面当当前activity位于栈顶的时候系统就不会调用onCreate方法新建activity,而是走栈顶activity的onNewIntent方法,自己也可以startActivity的时候从本activity跳转到本activity,看看走的是不是onNewIntent方法

3、singleTask方法,适用于程序的入口,比如浏览器的主页面,只启动主页面一次,其他调用onNewIntent方法。举个栗子:有三个界面,oneActivity、twoActivity、ThreeActivity,其中ThreeActivity的启动模式设置为singleTask,我们这么调转oneActivity----->twoActivity------->ThreeActivity------->oneActivity-------->twoActivity--------->ThreeActivity,你会发现,第二次调转到ThreeActivity的时候不会走ThreeActivity的oncreate方法,而是走onNewIntent方法,并且在新栈中位于第一个ThreeActivity上的oneActivity和twoActivity都会被销毁

4、singleInstance方法,适用于与程序分离的界面,比如闹钟,与singleTask类似,区别在于singleTask允许其他activity进驻到新栈中而singleInstance不允许其他activity进驻到新栈中,新栈中只允许有一个activity

PS:启动activity时还有个比较常用的FLAG是FLAG_ACTIVITY_CLEAR_TOP,这个会清除栈中位于这个activity上的其他activity,这个会重新走activity的onCreate方法,注意不要与singleTop混淆

时间: 2024-11-14 12:58:24

分分钟搞定LaunchMode的相关文章

iOS开发分分钟搞定C语言 —— 宏定义和关键字

一.宏定义 概念:宏定义实质是一个预编译指令,在程序未运行之前将某些指令付给相应的变量.一般情况预处理指令都是以#号开头的,所以宏定义也是以#开发,关键字为#define(定义宏定义),#undef(结束宏定义). 定义格式及作用域 一般宏定义都定义在程序的首段: #define 宏名 值. 宏定义的作用域:从开始定义的那行起,一直到文件末尾,虽然默认情况下宏定义的作用域是从定义的那一行开始, 一直到文件末尾.但是我们也可以通过对应的关键字#under提前结束宏定义的作用域. 宏定义规范 一般情

分分钟搞定 JSP 技术

一.JSP的语法    1.模版元素        写在JSP中的html内容        在翻译后的Servlet中, 直接被out.write原样输出 2.JSP脚本表达式        格式: <%=  %>        在翻译后的Servlet中, 计算表达式的值在原样输出 3.JSP脚本片段        格式: <% 若干条java语句 %>        在翻译后的Servlet中, 直接复制粘贴到对应的位置执行 多个片段之间的变量可以互相访问        一个

教你分分钟搞定Docker私有仓库Registry

一.什么是Docker私有仓库Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜像放到公网当中,那么你就需要Docker Registry,它可以用来存储和管理自己的镜像. 二.安装Docker及Registry 安装Docker见之前博文: http://www.cnblogs.com/Javame/p/5492543.html 安装Regi

分分钟搞定 CSS 中令你困扰的各种三角

话不多说,直接上图 .triangle-one { display: inline-block; border-top: 50px red solid; border-right: 50px green solid; border-bottom: 50px yellow solid; border-left: 50px blue solid;} .triangle-six { display: inline-block; border: 50px transparent solid; borde

(转)教你分分钟搞定Docker私有仓库Registry

转:https://www.cnblogs.com/Javame/p/7389093.html 一.什么是Docker私有仓库Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜像放到公网当中,那么你就需要Docker Registry,它可以用来存储和管理自己的镜像. 二.安装Docker及Registry 安装Docker见之前博文: htt

看到“java单例模式”脑壳疼,学会这几招分分钟搞定

单例模式 单例模式(Singleton),也叫单子模式,是一种常用的软件设计模式.在应用这个模式时,单例对象的类必须保证只有一个实例存在.许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为. 比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息.这种方式简化了在复杂环境下的配置管理. 单例模式的运用场景 外部资源:每台计算机有若干个打印机,但只能有一个PrinterSpo

编程学习第一步,让你20天搞定Python编程

大家好,欢迎大家阅读篇文章,Python是当前火爆的编程语言之一:从后台开发到自动化,从数据分析到人工智能,都有Python的身影.我们掌握Python,就有了进入这些行业的可能.下面简单介绍下老猫和这个专栏. Who Am I? 自称老猫,三线互联网公司开发人员一枚,30多岁依然奋斗开发一线,从事数据分析相关工作,每天在公司兢兢业业勤勤恳恳. 老猫,为什么三十多了还做一线开发? 最烦这么问的人,因为I Love It,编码的日子让我活的真实. 老猫,能不能说人话??? 因为上有老下有小,贷款压

分分钟轻松搞定IBM系列 RAID5搭建

分分钟轻松搞定IBM系列 RAID5搭建 按照 以下图片步骤一步步可轻松完成IBM服务器RAID1.5.10等的搭建. 此例是以RAID5为例,RAID1和10可举一反三. 原文地址:https://www.cnblogs.com/kezi/p/11621258.html

“你的这个只要一行代码就能搞定”

帮舍友代写了一个程序,中期检查的时候和他一起去见老师.老师看了说我们的工作量太少.这个几分钟就搞定.最后他居然说:"这个工作量太少了,就调用一行代码的事,几分钟就可以搞定".去之前我知道这个临时做出来的东西,肯定没跟上进度.但好歹有几天的工作量吧.他居然说只要几分钟,一行调用代码.难道用http协议从网上获取天气数据,再解析xml格式的数据,再转换字符串编码,再根据天气选择要绘制的图片和文字,只需要一行代码?难道我不需要查资料,不需要设计界面吗?为了用mfc做出这个界面,我确实费了一番