在 Android 中,活动的启动模式(Activity Launch Mode)决定了当一个新的活动(Activity)被启动时,它是如何与任务栈(Task Stack)中的其他活动进行交互的。Android 提供了四种基本的启动模式:
- standard(标准模式):
- 这是默认的启动模式。每次启动一个活动时,都会创建一个新的活动实例,并将其压入当前任务栈。
- singleTop(栈顶复用模式):
- 如果新的活动已经位于任务栈的栈顶,则不会创建新的活动实例,而是复用栈顶的活动实例。如果栈顶不是该活动,则会创建新的活动实例并压入栈中。
- singleTask(栈内复用模式):
- 在整个任务栈中查找该活动实例,如果存在,则将该活动之上的所有活动出栈,并显示该活动实例。如果整个任务栈中都不存在该活动实例,则创建新的活动实例并压入栈中。
- singleInstance(单实例模式):
- 新的活动会启动在一个新的任务栈中,并且该任务栈中只有这一个活动实例。如果活动实例已经存在,则系统会将其所在的任务栈转到前台,而不是创建新的活动实例。
要在 AndroidManifest.xml 文件中设置活动的启动模式,可以使用 <activity>
标签的 android:launchMode
属性。例如:
<activity android:name=".MyActivity" | |
android:launchMode="singleTop"> | |
... | |
</activity> |
在上面的例子中,MyActivity
的启动模式被设置为 singleTop
。你可以将 android:launchMode
的值更改为 standard
、singleTask
或 singleInstance
来改变活动的启动模式。