SingleTask模式 与 SingleInstance 模式

一、SingleTask

SingleTask 所有的入栈、出栈操作都在同一个Activity栈中进行。

1、ActivityA 与ActivityB 在同一个应用

  • 任务栈中存在ActivityB ,则不会创建新的,直到使用它(调用onNewIntent),并将它之上的Activity出栈。
  • 任务栈中不存在ActivityB,则在栈顶新建一个

2、ActivityA 在应用A中,ActivityB 在应用B中

  • 应用B处于后台,而且应用B的任务栈(后台栈)中存在ActivityB ,则应用B任务栈中的ActivityB 及其之下的所有Activity将一起被切换到应用A的任务栈(前台栈)

引用官网的图片如下:
Back Stack 为应用A的任务栈,是前台任务栈。Activity2 为ActivityA .
Backgroud Task 栈为应用B的任务栈,在后台,ActivityY 为ActivityB

SingleTask模式 与 SingleInstance 模式_第1张图片
image

二、SingleInstance 所有的Activity栈中只存在一个特定的Activity.

ActivityA启动ActivityB(SingleInstance模式):
该模式不区分ActivityA与ActivityB是否位于同一个应用

  • 所有任务栈中不存在ActivityB,则ActivityB会在新的任务栈中创建,并且该任务栈始终只有ActivityB,ActivityB启动其他Activity会被放到另外的任务栈

  • 某个任务栈中存在ActivityB,则直接利用。

参考文章:
https://blog.csdn.net/weixin_40855673/article/details/80630634

你可能感兴趣的:(SingleTask模式 与 SingleInstance 模式)