Activity 系列知识 (三) ——启动模式

166 阅读1分钟

Activity的启动模式

一、standard

标准模式:每次都创建一个新的Activity,调用onCreate->onStart->onResume,谁启动它,它就在哪个栈

二、singleTop

栈顶复用模式:如果栈顶有此Activity,则不再创建,会调用onNewIntent,谁启动它,它就在哪个栈

三、singleTask

栈内复用模式:同一个类的Activityz栈内只能有一个,会调用onNewIntent。将自己放在所需的栈内

image.png

3.1 singleTask的使用

设有前台任务栈,栈内有A、B。后台任务栈C、D。当按下back按键时,生命周期如下图

singletask.jpeg

四、singleInstance

栈内只能有一个Activity

五、TaskAffinity和allowTaskRepeating

5.1 TaskAffinity

默认情况所有Activity所需的任务栈的名称为包名

5.2 allowTaskReparent

允许改变所在的栈

5.3 TaskAffinityallowTaskRepeating结合:

这两个关键字结合,会产生几种特殊情况:

  1. 应用A的Activity -> 应用B的Activity(allowTaskRepeating = true) image.png