启动新 Activity 时,我遇到了关于 FLAG_ACTIVITY_NEW_TASK
标志的问题。
目前我有 2 个应用程序:应用程序 A 仅包含一个服务,它可以启动应用程序 B 的主要 Activity (应用程序 B 有 1 Activity 是它的主要 Activity )
我的问题是:当应用程序 B 处于 Activity 状态时(它的主要 Activity 对用户可见,并且它是其任务中的唯一 Activity ),服务获取应用程序 B 包名称的启动 Intent (来自 PackageManager
) 并向其添加 FLAG_ACTIVITY_NEW_TASK
标志(它必须这样做,因为它不是 Activity 上下文,而是服务上下文)。
现在,在启动此 Intent 时,我预计不会发生任何事情,因为开发人员指南中的文档如下:
FLAG_ACTIVITY_NEW_TASK
When using this flag, if a task is already running for the activity you are now starting, then a new activity will not be started; instead, the current task will simply be brought to the front of the screen with the state it was last in.
但是,由于某种原因,应用程序 B 的另一个主要 Activity 在已经存在的 Activity 之上创建并启动,所以我在应用程序 B 任务中有 2 个主要 Activity 。
主要 Activity 没有在 list 中设置特殊属性,因此它的 launchMode
属性自动设置为标准。
谢谢!
最佳答案
您是否尝试过在应用程序 B 的 AndroidManifest.xml 中将应用程序 B 中的主要 Activity 的启动模式更改为 SingleTask 或 SingleInstance?
参见 Launch mode获取更多信息。
关于android - FLAG_ACTIVITY_NEW_TASK 未按预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6929867/