配置activity时可指定android:launchMode属性,该属性用于配置改Activity的启动模式。该属性支持以下4个属性值。

standard:标准模式,默认的加载模式

singleTop:Task栈顶单例模式

singleTask:Task内单例模式

singleInstance:全局单例模式

Android采用Task来管理多个Activity,当我们启动一个应用时,Android会为之创建一个Task,然后启动这个应用的入口Activity(即intent-filter中配置MAIN和LAUNCHER的Activity)。

1、standard模式

每次通过这种模式启动Activity时,Android总会为目标创建一个新的实例,并将该Activity添加到当前Task栈中,这汇总模式不会启动新的Task,新的Activity将会被添加到原因有的Task中。

2、singleTop模式

这中模式和standard有点相似,但有一点不同:当将要启动的Activity已经位于Task栈顶时,系统不会重新创建目标Activity实例,而是直接复用已有的Activy实例。

如果要将启动的目标Activy没有位于栈顶,此时系统会重新创建目标Activity实例,并将它加载到Task栈顶,此时与standard模式完全相同。

3、singleTask模式

采用这种加载模式的Activity在同一个Task内只有一个实例,启动目标Activity时,可分为如下三种情况。

(1)、如果将要启动的目标Activity不存在,系统将会创建目标Activity实例,并将它加入到Task栈顶。

(2)、如果将要启动的Activity已经位于Task栈顶,此时与singleTop模式相同。

(3)、如果将要启动的Activity已经存在,但没有位于Task栈顶,系统会把位于该Activity上面所有的Activy移出Task栈,从而使目标Activity转入栈顶。

4、singleInstance模式

系统保证无论哪个Task中启动目标Activity,只会创建一个目标Activity实例,并会使用一个全新的Task栈来加载该Activity实例。

更多相关文章

  1. Android高频面试专题 - 基础篇(一)Activity
  2. Android常用功能实例
  3. android中file的使用实例
  4. android EditText软键盘隐藏总结
  5. Android轻松集成Camera拍照
  6. Android网络状态实时监听实例代码(二)
  7. 【Android浏览器插件开发准备工作之NPAPI】使用Visual Studio 20
  8. Android(安卓)Realm数据库完美解析
  9. Android(安卓)Hook Java

随机推荐

  1. Groovy XML文件/文本处理
  2. android状态栏下载
  3. android WIFI相关问题集合
  4. Mastering the Android(安卓)Media Frame
  5. Top 5 Crashes on Android
  6. kotlin超简单recyclerView测试
  7. Android中一些很帅气的属性
  8. Android(安卓)ADT Bundle 0917,SDK Tools
  9. BDLocationListener doesn't work
  10. android简单一级购物车