【Android -- 四大组件】Activity 启动模式

一、前言

Android 提供了四种启动模式:

  • Standard (标准模式)
  • SingleTop(栈顶复用模式)
  • SingleTask(栈内复用模式)
  • SingleInstance(单例模式)

二、区别

wf.png

三、设置

启动模式有 2 种设置方式:在 AndroidMainifest 设置、通过 Intent 设置标志位
1. 在 AndroidMainifest 设置

<activity
android:launchMode="启动模式"
//属性
//standard:标准模式
//singleTop:栈顶复用模式
//singleTask:栈内复用模式
//singleInstance:单例模式
//如不设置,Activity的启动模式默认为**标准模式(standard)**
</activity>

2. 通过Intent设置标志位

Intent inten = new Intent (ActivityA.this,ActivityB.class);
intent,addFlags(Intent,FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

四、面试题

说下 Activity 的四种启动模式?
参考回答:

  • standard 标准模式:每次启动一个 Activity 就会创建一个新的实例
  • singleTop 栈顶复用模式:如果新 Activity 已经位于任务栈的栈顶,就不会重新创建,并回调
    onNewIntent(intent) 方法
  • singleTask 栈内复用模式:只要该 Activity 在一个任务栈中存在,都不会重新创建,并回调
    onNewIntent(intent) 方法。如果不存在,系统会先寻找是否存在需要的栈,如果不存在该栈,就创建一个任务栈,并把该 Activity 放进去;如果存在,就会创建到已经存在的栈中
  • singleInstance 单实例模式:具有此模式的Activity只能单独位于一个任务栈中,且此任务栈中只有唯一一个实例
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kevin-Dev

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值