Android:Activity(五):Activity加载模式
Activity加载模式
配置Activity时,可指定android:launchMode属性来配置Activity加载模式,Android采用Task栈来管理多个
Activity:先启动的Activity将放入栈底,后启动的Activity将放在栈顶;
当我们启动一个应用时,Android就会为之创建一个Task,然后启动这个应用的入口Activity中配置
为MAIN和LAUNCHER的Activity.Android没有提供访问Task的API,所以只能使用Activity的getTaskId()方法
来获取它所在的Task的ID;
Android加载模式的作用:
负责管理实例化Activity,加载Activity的方式,并可以控制Activity与Task之间的加载关系!
Android有4种加载模式:
1.standard模式(默认)
使用此模式启动Activity时,Android总会为目标Activity创建一个新的实例,并将该Activity添加到当前
Task中,这种模式不会启动新的Task,新的Activity将被添加到原有的Task中!
2.singleTop模式
使用此模式启动Activity时,如果被启动的目标Activity已经位于栈顶,系统不会重新创建目标Activity
的实例,而是直接复用已有的Activity。
3.singleTask模式
使用此模式启动的Activity在同一个Task内只有一个实例,当系统采用SigleTask模式启动目标Activity时,
可分为三种情况:
一.如果将要启动的目标Activity不存在,系统将会创建目标Activity的实例,并将它加入Task栈顶。
二.如果将要启动的目标Activity已经位于Task栈顶,此时与SingleTop模式的行为相同。
三.如果将要启动的目标Activity已经存在,但没有位于Task栈顶,系统将会把位于该Activity上面
的所有Activity移出Task栈,从而使得目标Activity转入栈顶。
4.singleInstance模式
使用此模式启动的Activity时,系统保存无论从哪个Task中启动目标Activity,只会创建一个目标
Activity实例,并会使用一个全新的Task栈来加载该Activity实例,可分为如下两种情况:
一.如果将要启动的目标Activity不存在,系统会先创建一个全新的Task,在创建目标Activity的实例,
并将它加入新的Task的栈顶.
二.如果将要启动的目标Activity已存在,无论它位于哪个应用程序中,无论它位于哪个Task栈中,系统
将会把该Activity所在的Task转到前台,从而使用该Activity显示出来.
更多相关文章
- 如何快速启动安卓模拟器(Android(安卓)Emulator)
- Android单元测试 Instrumentation
- Android应用程序启动过程源代码分析
- 深入浅出 - Android系统移植与平台开发(七)- Android系统的启动
- android中的recovery模式
- Android动态加载入门 简单加载模式
- Android系统启动流程
- Android的四种启动方式
- Android(安卓)Service 服务详细讲解