【android】activity的4种启动模式简介
首先咱必须知道,activity是以栈(后进先出)的结构进行管理的。
当活动A启动了活动B时,A被压入到栈内,B在栈的最顶层。当B调用finish()结束活动时,B从栈弹出,此时A在栈的最顶层。

我们可以在AndroidManifest.xml文件的activity节点,通过指定android:launchMode="standard"属性来实现启动模式的变更。
好,了解活动是如何管理的,那么咱就来了解下,活动的4种启动模式。
1:stand
如果不指定启动模式的话,都是用此标准型启动模式。比如我们启动了活动A,不管栈里面是否已经存在A,A都会被重新创建一遍压入栈。
2:singleTop
顶层活动唯一。比如我们启动了活动A,此时如果栈的最顶层已经存在了A,那么此时就直接使用A。
3:singleTask
栈内活动唯一。和2最大的区别是,此模式不管你活动在栈的什么位置,只要启动A的时候发现A已经在栈内了,在A上面的活动全部被销毁(生命周期比如onDestory也会被执行),直接使用A
4:singleInstance
新创建一个栈来管理此活动。
比如我们指定了活动B启动模式为singleInstance, A、C默认使用stand;以A -> B -> C顺序来启动三个活动后:
C活动finish()后,返回的是A(而不是B,因为管理B的栈独立于AC);A活动finish()后,这时当前的栈已经空了,于是就找到了其他栈(也就是活动B所在的栈)。
【android】activity的4种启动模式简介的更多相关文章
- Android Activity 的四种启动模式 lunchMode 和 Intent.setFlags();singleTask的两种启动方式。
原文:Android Activity 的四种启动模式 lunchMode 和 Intent.setFlags();singleTask的两种启动方式. Android Activity 的四种启动模 ...
- Android Activity的4种启动模式详解(示例)
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/5233269.html 先介绍下Android对Activity的管理,Android采用Task来管理多个A ...
- Android Activity的4种启动模式
Activity的启动模式 standard 默认标志的启动模式,每次startActivity都是创建一个新的activity的实例,适用于绝大数情况 singleTop 单一顶部,如果要开启的ac ...
- Android 关于Activity的四种启动模式的简单介绍
Activity启动模式设置: <activity android:name=".MainActivity" android:launchMode="standar ...
- Android学习笔记四:activity的四种启动模式
Activity有四种启动模式:standard,singleTop,singleTask,singleInstance. 1.standard:标准启动模式 默认模式,这个模式下启动的Activit ...
- Activity的四种启动模式
Activity有四种启动模式: 1. standard,默认的启动模式,只要激活Activity,就会创建一个新的实例,并放入任务栈中,这样任务栈中可能同时有一个Activity的多个实例. 2. ...
- Activity的四种启动模式-图文并茂
1.对于使用standard 模式的活动,系统不会在乎这个活动是否已经在返回栈中存在,每次启动都会创建该活动的一个新的实例. 例如A启动A,A再接着启动A,A继续启动A,然后再分别出栈,如图所示 ...
- Activity的四种启动模式和onNewIntent()
转自:http://blog.csdn.net/linghu_java/article/details/17266603 Android中Activity启动模式详解 在Android中每个界面都 ...
- 详解Activity的四种启动模式
在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. Ac ...
随机推荐
- Apache版Phoenix的安装(图文详解)
不多说,直接上干货! 写在前面的话 我这里,三个节点的bigdata集群.分别为master.slave1和slave2. 1.Phoenix的下载 我的HBase版本是hbase-0.98.19. ...
- shell脚本学习总结12--系统信号
信号是Linux系统中一种进程通信机制.我们可以使用特定的信号来中断进程.每一种信号都同一个整数值相关联. kill命令可用来想进程发送信号,而trap命令用来处理所接收的信号. kill 列出所有可 ...
- 第二十五篇:使用 sigaction 函数实现可靠信号
前言 在前文中,讲述了一个可靠信号的示例.它分成几个步骤组成( 请参考前文 ).在 Linux 系统编程中,有个方法可以将这些步骤给集成起来,让我们使用起来更加的方便. 那就是调用 sigaction ...
- Android无线测试之—UiAutomator UiScrollable API介绍六
向前与向后滚动API 一.向前与向后滚动相关API 返回值 API 描述 boolean scrollBackward(int steps) 自动以步长向后滑动 boolean scrollBackw ...
- 非IE图片上传预览
$("#uploadFiles").change(function (e) { if (e.target.files) { ...
- 【原】storm源码之一个class解决nimbus单点问题
一.storm nimbus 单节点问题概述 1.storm集群在生产环境部署之后,通常会是如下的结构:从图中可以看出zookeeper和supervisor都是多节点,任意1个zookeeper节点 ...
- python练习题-3
author:headsen chen date: 2018-06-01 15:51:05 习题 31: 作出决定(if + raw_input) [root@localhost py]# cat ...
- JavaMath方法、服务器与Tomcat安装与配置步骤
一.Math Math.PI 记录的圆周率 Math.E 记录e的常量 Math中还有一些类似的常量,都是一些工程数学常用量. Math.abs 求绝对值 Math.sin 正弦函数 Math. ...
- [iOS微博项目 - 4.5] - 每条微博的底部工具条
github: https://github.com/hellovoidworld/HVWWeibo A.每条微博的底部工具条 1.需求 每条微博底部都有一个工具条 显示3个按钮:评论.转发.赞 按钮 ...
- I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA 问题
临时解决版本进入python后只需下面命令 import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'