Activity四种启动模式

1.Standrd模式(标准启动模式)

标准启动模式就是没有特殊配置的Activity。该启动模式下会一直创建Activity并将该Activity压入TaskRecord中。

2.SingleTop(栈顶复用模式)

解释:只有当Activity位于栈(TaskRecord)顶的时候,再次启动当前的Activity,复用栈顶的Activity实例。不会重复创建。如果位于栈(TaskRecord)内(中间位置),则与标准模式相同,仍然会重新创建实例。

3 .SingleTask(栈内复用模式)

         SingleTask模式的Activity在同一个Task内只有一个实例,如果Activity已经位于栈顶,系统不会创建新的Activity实例,和singleTop模式一样。但Activity已经存在但不位于栈顶时,系统就会把该Activity移到栈顶,并把它上面的activity出栈。修改上面的程序,新建一个SecondActivity,将FirstActivity设置为singleTask启动模式,并让它启动SecondActivity,再让SecondActivity来启动FirstActivity。

4.singleInstance 启动模式

总是在新的任务中开启,并且这个新的任务中有且只有这一个实例,也就是说被该实例启动的其他 Activity 会自动运行于另一个任务中。当再次启动该 Activity 的实例时,会重用已存在的任务和实例。并且会调用这个实例的onNewIntent()方法,将 Intent 实例传递到该实例中。

设置了 singleInstance 的 Activity,整个系统只有一个实例,独占一个栈,且由它启动的 Activity 根据目标 Activity 的 taskAffinity 来选择进哪个 task,若不存在对应的 task,则新建一个 task 并新建一个目标 Activity 的实例入栈。

你可能感兴趣的:(Activity四种启动模式)