Android | launchMode启动模式详解

💡 原文中文,约6000字,阅读约需15分钟。
📝

内容提要

本文讨论了Android中Activity的任务栈和启动模式,包括任务栈的管理和启动模式的五种类型。还介绍了任务栈亲和性的修改和常用的Intent.FLAG标志位。最后提到了FLAG_ACTIVITY_REORDER_TO_FRONT和FLAG_ACTIVITY_CLEAR_TASK标志位的使用。

Q&A

Android中的launchMode有哪些类型?

Android中的launchMode有五种类型:standard、singleTop、singleTask、singleInstance和singleInstancePerTask。

如何通过manifest文件设置Activity的任务栈行为?

可以通过manifest文件中的<activity>标签配置launchMode、taskAffinity、allowTaskReparenting等属性来设置任务栈行为。

FLAG_ACTIVITY_NEW_TASK标志位的作用是什么?

FLAG_ACTIVITY_NEW_TASK标志位用于在新任务栈中启动Activity,通常与taskAffinity结合使用。

什么是taskAffinity,它的作用是什么?

taskAffinity用于修改Activity之间的亲和性,决定它们属于哪个任务栈,默认情况下同一应用中的所有Activity具有相同的亲和性。

如何使用FLAG_ACTIVITY_CLEAR_TOP标志位?

FLAG_ACTIVITY_CLEAR_TOP会销毁目标Activity及其上面的所有Activity,并重新创建目标Activity,常用于返回到某个Activity时清理栈。

allowTaskReparenting属性的作用是什么?

allowTaskReparenting属性允许Activity在特定条件下从一个任务栈移动到另一个任务栈,前提是目标任务栈在前台。

🏷️

标签

➡️

继续阅读