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时,也将被移除,并创建新的实例。
时间: 2024-10-13 15:51:26