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显示出来.


更多相关文章

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

随机推荐

  1. Android各版本对应的SDK版本
  2. 使用Android studio导入源码工程
  3. 高通平台Android N SystemUI添加qcnvitem
  4. Android强制设置横屏或竖屏
  5. Android 控件抖动效果
  6. Android Studio第二十七期 - RecycleView
  7. Android ViewFlipper简单示例
  8. Android 权限添加
  9. Android 项目生成证书指纹(MD5、SHA1、SHA
  10. Android中的动画