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(安卓)Emulator)
  2. Android单元测试 Instrumentation
  3. Android应用程序启动过程源代码分析
  4. 深入浅出 - Android系统移植与平台开发(七)- Android系统的启动
  5. android中的recovery模式
  6. Android动态加载入门 简单加载模式
  7. Android系统启动流程
  8. Android的四种启动方式
  9. Android(安卓)Service 服务详细讲解

随机推荐

  1. android优秀网站收集中
  2. Android(安卓)5.0 Lollipop SDK下载地址
  3. TextView 滚动
  4. Android(安卓)Button Maker(在线生成andro
  5. 初学Android,Android的项目结构(二)
  6. Android系列之浅谈AndroidGallery控件使
  7. Android图片堆叠效果实现
  8. Android之EditText
  9. 最新Android(安卓)SDK/ADT/NDK的下载位置
  10. Layout属性介绍