Android | launchMode启动模式详解
💡
原文中文,约6000字,阅读约需15分钟。
📝
内容提要
本文讨论了Android中Activity的任务栈和启动模式,包括任务栈的管理和启动模式的五种类型。还介绍了任务栈亲和性的修改和常用的Intent.FLAG标志位。最后提到了FLAG_ACTIVITY_REORDER_TO_FRONT和FLAG_ACTIVITY_CLEAR_TASK标志位的使用。
🎯
关键要点
- 任务栈管理是Android中Activity的重要概念,涉及Activity的启动顺序和返回操作。
- 可以通过manifest文件和Intent.FLAG动态设置任务栈的行为。
- Activity的launchMode属性有五种类型:standard、singleTop、singleTask、singleInstance和singleInstancePerTask。
- taskAffinity用于修改Activity之间的亲和性,决定它们属于哪个任务栈。
- allowTaskReparenting属性允许Activity在特定条件下从一个任务栈移动到另一个任务栈。
- 常用的Intent.FLAG标志位包括FLAG_ACTIVITY_NEW_TASK、FLAG_ACTIVITY_CLEAR_TOP、FLAG_ACTIVITY_SINGLE_TOP、FLAG_ACTIVITY_REORDER_TO_FRONT和FLAG_ACTIVITY_CLEAR_TASK。
- FLAG_ACTIVITY_NEW_TASK用于在新任务栈中启动Activity,通常与taskAffinity结合使用。
- FLAG_ACTIVITY_CLEAR_TOP会销毁目标Activity及其上面的所有Activity,并重新创建目标Activity。
- FLAG_ACTIVITY_REORDER_TO_FRONT将已存在的Activity调到前面,并调用其onNewIntent()方法。
- FLAG_ACTIVITY_CLEAR_TASK会清空任务栈中的Activity,并将目标Activity作为根Activity启动。
🏷️
标签
➡️