android 四种启动模式相关知识

关于四种启动模式该博主已经说的很详细了:细谈Activity四种启动模式

我想补充几点:

  • 1.启动模式-singleTask,两个activity A和B,B为singleTask
    activity打开顺序 :A->B->A->B
    此时当A第二次打开的时候,栈从底到最上是ABA,当A再打开B的时候,为了保证同个栈里只有一个实例,那么此时会把最上面的A弹出,打开B,此时的栈为:AB,而且会调用B的onNewIntent()方法
  • 2.启动模式-singleInstance,两个activity A和B,B为singleInstance,从A打开B,那么此时就有两个栈,一个栈只有一个A,一个栈只有一个B,此时显示的是B界面,点返回此时返回到A栈的A界面,注意此时B栈并没有被销毁,再点返回回到了B栈的B界面,再点返回才会返回到桌面
  • 3.Activity的Flags
    3.1:FLAG_ACTIVTTY_NEW_TASK 相当于singleTask
    3.2:FLAG_ACTNITY _SINGLE_TOP相当于singleTop
    3.3:FLAG_ACTIVITY_CLEAR_TOP会把该activity之上的全部弹出
    一般这两个会配合使用:
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);

你可能感兴趣的:(android 四种启动模式相关知识)