Android 高级开发笔记 第二章 Activity的启动模式
来源:互联网 发布:时间片轮转调度算法 编辑:程序博客网 时间:2024/05/19 23:27
大家好,我是听者,欢迎阅读Android 高级开发笔记系列之Activity的启动模式。
在学习启动模式之前我们需要了解一下为什么Activity需要启动模式,众所周知,Android是通过任务栈的方式来管理Activity,系统会为每一个应用程序分配一个栈,栈就是要遵循“后进先出”的原则,即每次start一个Activity时,就压入栈中,所以Activity的启动模式即是指定Activity将压入栈中的方式。下面我们就学习一下Activity的四种launchMode:
一、launchMode的简介:
1. standard:标准启动模式也是系统默认的启动模式,如果B Activity设置了该模式,那么 A Activity 启动了 B Activity那么B Activity 将会压入A Activity所在的栈中,不论A和B是否属于同一个应用程序。
2.singleTop:栈顶复用模式,即如果 A Activity 位于目标栈的栈顶的话,再次启动 A Activity时,A 将不会被创建,直接调用其onNewIntent方法。
3.singleTask:栈内复用模式,即如果Activity A 设置了singleTask,当启动 A 时,如果目标栈中不存在A的实例,那么创建一个A压入目标栈中,如果存在A的实例,调用A的onNewIntent方法,将栈中A上方的全部移出栈,将A位于栈顶。例如:
4.singleInstance:单例模式,即如果Activity A 设置了singleInstance启动模式,如果目标栈S1启动Activity A,如果A的独立栈不存在,那么将会为A创建独立栈,然后将其压入栈中,当目标栈S2再次启动Activity A时,此时A的独立栈存在,直接复用A。
二、举例说明四种启动模式:
当前Activity栈中有ABCD四个Activity,A位于栈低,D位于栈顶:
1.ABCD全部设置成standard启动模式,设X是四个Activity的任意一个,启动X那么该目标任务栈的情况为ABCDX。
2.ABCD全部设置成singleTop启动模式,当启动D时,那么调用D的onNewIntent,该目标任务栈的情况为ABCD;当启动B时,该目标任务栈的情况为ABCD。当启动B时,创建B,该目标任务栈的情况为ABCDB。
3.ABCD全部设置成singleTask启动模式,当启动D时,调用D的onNewIntent,该目标任务栈的情况为ABCD;当启动B时,调用B的onNewIntent,C、D移出栈,该目标任务栈的情况为AB。
4.当E Activity的启动模式设置为singleInstance时,启动E,将会为E创建一个新的任务栈,再次启动E时,直接调用E的onNewIntent.
好的,今天就介绍到这里,如果有什么疑问,欢迎加入 Android高级开发交流群 群号: 474440973,听者在北京等你!
- Android 高级开发笔记 第二章 Activity的启动模式
- Android开发艺术探索笔记一:Activity的启动模式
- android 预习第二章节 android中Activity的启动模式
- Android学习笔记----Activity的启动模式
- Android学习笔记-----------Activity的启动模式
- android开发的activity启动模式
- Android开发之Activity的启动模式
- Android开发中Activity的启动模式
- Android开发之Activity的启动模式
- android activity启动模式笔记
- Android开发:Activity启动模式
- 《Android开发艺术探索》笔记之Activity的生命周期和启动模式
- Android开发艺术探索(研读笔记)——02-Activity的启动模式
- 《Android开发艺术探索》之学习笔记(一)Activity的生命周期和启动模式
- 《Android开发艺术探索》笔记 — Activity的生命周期和启动模式
- Android开发艺术探索笔记——第一章:Activity的生命周期和启动模式
- Android开发艺术探索笔记(2)- Activity的启动模式
- Android开发艺术探索笔记(一) Activity的生命周期和启动模式(1)
- addSubView和insertSubView的差别?
- 解决asp.net上传文件时文件太大导致的错误
- php函数笔记目录[整理中]
- android 特殊网络类型说明
- Out of memory, OOM killer输出信息分析
- Android 高级开发笔记 第二章 Activity的启动模式
- RESTful 架构风格概述
- 停止 卸载 XAMPP
- n王后问题(分支限界)
- 主流数据库分页查询介绍
- Stm32 IO口配置和使用
- 使用Adobe Acrobat设置pdf的页码
- unity5地形lightmap阴影bug
- android studio 打开工程报错