Activity 的启动模式 以及与AppManager类的关系

Activity的四种启动模式分别为:standard、singleTop、singleTask、singleInstance
有两种配置方式

  1. 清单文件中的Activity配置使用:android:launchMode=""属性指定启动模式
  2. Intent intent = new Intent(this, MainActivity.class);
    //相当于singleTask
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
    FLAG_ACTIVITY_NEW_TASK相当于singleTask
    下边说一下每一种启动模式所代表的意思
    1、standard:默认模式,每次启动都会创建一个新的Activity对象,放到目标任务栈的栈顶
    2、singleTop:判断当前的任务栈顶是否存在相同的Activity,如果存在,直接使用,如果不存在,创建一个新的Activity对象放入栈顶
    3、singleTask:在任务栈中判断是否存在相同的Activity,如果存在,那么会清楚该Activity之上的所有Activity对象显示,
    如果不存在,创建一个新的Activity对象放入栈顶
    4、singleInstance:会在一个新的任务栈中创建Activity,并且该任务栈中只允许存在一个Activity实例,
    说起启动模式,就不得不说AppManager
    他是管理Activity的 首先确认启动模式
    接下来
Activity 的启动模式 以及与AppManager类的关系_第1张图片
A4C11146-FEBF-45CE-A69F-11ADEAA83363.png
Activity 的启动模式 以及与AppManager类的关系_第2张图片
DED94032-5CD3-4756-B9FD-4F44C34FBA46.png
Activity 的启动模式 以及与AppManager类的关系_第3张图片
B51645E9-18A6-4141-9802-B24822A67599.png

例子地址:https://github.com/Johnjson/ActivityAppManager

你可能感兴趣的:(Activity 的启动模式 以及与AppManager类的关系)