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] ContentProvider实例详解
- Android持久化技术之SharedPreferences存储实例详解
- Android优秀实例源码
- [实例教程] 用python开发android应用
- android中的recovery模式
- Android动态加载入门 简单加载模式
- 【Android】联通性 -- USB从属模式
- Android中创建对话框(确定取消对话框、单选对话框、多选对话框)
- Android当中的MVP模式(六)View 层 Activity 的基类--- BaseMvpActi