首页 > 代码库 > Activity启动模式和任务栈

Activity启动模式和任务栈

android中Activity的启动模式有4中。

  • standard

默认模式。每次启动Activity都会创建新的实例,放入到任务栈中。

  • singleTop

如果任务栈顶存在该Activity实例,重用之。否则创建新实例并放入栈顶。

  • singleTask

如果任务栈中存在Activity实例,重用之,该实例回到栈顶,其上的实例被移除出栈。否则创建新的放入栈中

  • singleInstance

在新的任务栈中创建Activity实例。任何应用启动该Activity都会重用这个栈中的实例。一个栈对应一个实例

 

清理栈

默认情况下,当一个任务栈长期保持在后台。系统将会清除此任务栈中除根Activity(开辟任务栈)外的实例。

<Activity>标签提供了一些属性可以设置

  • alwaysRetainTaskState

如果根Activity的此属性设置为true, 系统将不会清理这个任务栈,即便长期保持在后台。

  • clearTaskOnLaunch

如果根Activity的此属性设置为true,当任务栈保持在后台,系统将会清除此任务栈中除根Activity外的实例

  • finishOnTaskLaunch

此属性作用与单个Activity。当任务栈保持在后台,此属性可以使任务栈清理包括根Activity在内的所有实例

 

另外,当Intent包含FLAG_ACTIVITY_CLEAR_TOP标志,如果存在该目标实例,目标任务栈中此实例之上的实例将被移除。此实例启动模式为standard时,也将被移除,并创建新的实例。

Activity启动模式和任务栈