背景
让我们看下一个场景:
- 用户使用具有多个活动的应用 X(如 gmail 应用)。
- 在浏览了应用程序 X 之后,他转到了您的应用程序。
- 在您的应用程序中,您需要使用意图启动此 X 应用程序,以转到其中的特定活动。
- 现在用户去应用 X 上的这个特定活动。
- 用户按下后退按钮,希望回到您的应用程序而不是停留在应用程序 X 上。
另一个类似的场景:
- 用户在活动之间导航您的应用程序。
- 您的应用程序进入后台(例如,使用主页按钮)。
- 您的应用程序会显示一个通知,一旦单击,它将打开您应用程序的特定活动。
- 用户单击通知并转到您的应用程序的特定活动。
- 用户按下后退按钮,希望返回到单击通知之前显示的应用程序,而不是转到上次离开时显示的应用程序上的上一个活动。
似乎这两种情况的最后一步都不是默认行为。
这就是为什么我为此目的搜索最佳标志组合的原因。
问题
似乎唯一可以实现我所描述的行为的标志是Intent.FLAG_ACTIVITY_MULTIPLE_TASK(连同Intent.FLAG_ACTIVITY_NEW_TASK)。
但是,根据 android API,不建议正常使用此标志:
除非您正在实现自己的顶级应用程序启动器,否则不要使用此标志。...
因为默认系统不包括图形任务管理,所以您不应该使用此标志,除非您提供某种方式让用户返回到您已启动的任务。
此信息似乎与其他有关意图的描述一样令人困惑。
我见过其他意图标志,例如Intent.FLAG_ACTIVITY_CLEAR_TASK可以达到类似的结果,但是它们具有奇怪的行为和/或它们使用高 API
问题
使用此标志是否安全?有什么好的替代品吗?
使用这个标志有什么危险,使用它的 API 上的描述是什么意思?