Activity的启动模式
一、standard
标准模式:每次都创建一个新的Activity,调用onCreate->onStart->onResume,谁启动它,它就在哪个栈
二、singleTop
栈顶复用模式:如果栈顶有此Activity,则不再创建,会调用onNewIntent,谁启动它,它就在哪个栈
三、singleTask
栈内复用模式:同一个类的Activityz栈内只能有一个,会调用onNewIntent。将自己放在所需的栈内
3.1 singleTask的使用
设有前台任务栈,栈内有A、B。后台任务栈C、D。当按下back按键时,生命周期如下图
四、singleInstance
栈内只能有一个Activity
五、TaskAffinity和allowTaskRepeating
5.1 TaskAffinity
默认情况所有Activity所需的任务栈的名称为包名
5.2 allowTaskReparent
允许改变所在的栈
5.3 TaskAffinity和allowTaskRepeating结合:
这两个关键字结合,会产生几种特殊情况:
- 应用A的Activity -> 应用B的Activity(
allowTaskRepeating = true)