Android之启动模式
1、Standard 模式
首先这是一个默认的启动模式,举例: 我们想启动一个ActivityB,无论任务栈中是否存在ActivityB的实例,都会创建一个崭新的ActivityB位于栈顶。
2、SingleTask模式
举例启动Activity C
- 任务栈已经存在C的实例并且未位于栈顶
当启动Activity C 时,会将Activity C 上方所有的实例全部出栈让其位于栈顶,并且回调Activity C 中的onNewIntent()方法。
- 任务栈不存在C的实例
当启动Activity C 时,会创建一个崭新的Activity C 实例在栈顶
3、SingleTop 模式
如果任务栈内存在Activity D 实例且位于栈顶时,当启动Activity D时,会复用之前创建的ActivityD实例,并且回调onNewIntent()方法
如果任务栈中不存在Activity D的实例,当启动Activity D时,会创建一个崭新的ActivityD的实例
4、SingleInstance 模式
如果在 AndroidManifest.xml 中将 Activity E 的启动模式设置为 SingleInstance,并且任务栈内不存在 Activity E 的实例,当启动 Activity E 时,会在创建一个新的任务栈,并且栈内只有 Activity E 一个实例
如果启动模式为 SingleInstance 的 Activity E 已经独立存在于自己的任务栈中,此时再启动 Activity E, 则会复用已经创建的 Activity E 的实例,并且 Activity E 的 onNewIntent() 方法被调用
使用场景:
模式 | 使用场景 | 举例 |
---|---|---|
singleInstance | 作为外部App调用自己客户端程序的入口的Activity都会采用singleInstance启动模式 | 比如手机拨号界面,社交app分享界面 |
singleTask | App内部适合作为程序入口点 | 比如我们的首页 |
singleTop | 频繁启动的场景 | 比如连续收到多个通知 |
standard | 默认 | 默认 |
本文地址:https://blog.csdn.net/u010844304/article/details/107460917
上一篇: 修改了便签内容怎样再恢复?
下一篇: Android JS 互调
推荐阅读
-
Android 数据存储之 FileInputStream 工具类及FileInputStream类的使用
-
Android 自动判断是电话,网址,EMAIL方法之Linkify的使用
-
Android变形(Transform)之Camera使用介绍
-
Android开发之图形图像与动画(一)Paint和Canvas类学习
-
Android变形(Transform)之Matrix用法
-
Android开发之图形图像与动画(五)LayoutAnimationController详解
-
Android Intent启动别的应用实现方法
-
Android编程学习之抽象类AbsListView用法实例分析
-
Android应用开发之简易、大气音乐播放器实现专辑倒影效果
-
android线程消息机制之Handler详解