0
点赞
收藏
分享

微信扫一扫

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

一、前言

Android 提供了四种启动模式:

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

二、区别

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

三、设置

启动模式有 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只能单独位于一个任务栈中,且此任务栈中只有唯一一个实例


举报

相关推荐

0 条评论