启动模式的使用场景
标准模式
特性:
- 任何页面,如无必要,默认为标准模式,start启动一次创建一个新的Activity
适合场景:
- 任何页面
singleTop
特性:
- 如果该实例已有,且位于栈顶(是Stack顶部还是TaskRecord顶部?),start启动一次,不会重新创建
- 如果该实例已有,不位于栈顶(是Stack顶部还是TaskRecord顶部?),start启动一次,会重新创建
适合场景:
- 消息推送: 在单聊页面点击消息通知重新进入一个新的单聊页面
- 商品推荐:在A商品详情页面点击运营推荐进入一个新的B商品详情页面
singleTask
特性:
- 如果该实例已经存在(存在于同一个TaskRecord的?还是存在于Stack中?)但该实例之上还有别的Activity,start启动一次,不会重新创建,会清除该实例之上的所有Activity(清除Stack中其上面的所有?还是TaskRecord内其上面的所有?)
适合场景:
- 应用中的主页
singleInstance
特性:
- 创建一个新的栈结构,似的Activity存在于新的TaskRecord中
- 如果ActivityA已经存在,通过start方式启动ActivityA,则不会重新创建ActivityA
适合场景:
- 适用于于App主业务分开的页面
- 大型App的设置页面
- 闹铃App,闹铃提醒页面与闹铃设置页面分离