Android之启动模式
程序员文章站
2022-03-12 19:25:53
1、Standard 模式首先这是一个默认的启动模式,举例: 我们想启动一个ActivityB,无论任务栈中是否存在ActivityB的实例,都会创建一个崭新的ActivityB位于栈顶。2、SingleTask模式举例启动Activity C任务栈已经存在C的实例并且未位于栈顶当启动Activity C 时,会将Activity C 上方所有的实例全部出栈让其位于栈顶,并且回调Activity C 中的onNewIntent()方法。任务栈不存在C的实例当启动Activit...
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开发之禁止下拉通知栏的方法
-
Android项目实战之仿网易新闻的页面(RecyclerView )
-
Android布局之LinearLayout自定义高亮背景的方法
-
Android编程UI设计之GridView和ImageView的用法
-
android之ContentResolver与ContentProvider介绍
-
Android动画之渐变动画(Tween Animation)详解 (渐变、缩放、位移、旋转)
-
Android开发之Button事件实现与监听方法总结
-
Android开发之imageView图片按比例缩放的实现方法
-
Android动画之补间动画(Tween Animation)实例详解
-
Android动画之逐帧动画(Frame Animation)实例详解