背景
我需要在某些事件上启动一个活动(如通知点击,但它可以是任何其他事件,甚至来自广播接收器),如果它们正在运行,也将关闭所有其他活动,或者至少不关注它们.
为此,我使用Intent.FLAG_ACTIVITY_CLEAR_TASK标志。
问题
似乎 Intent.FLAG_ACTIVITY_CLEAR_TASK 标志仅适用于API 11 (honeycomb) 及更高版本。
一些网站声称IntentCompat可以提供帮助,但即使有文档也明确指出:
仅在支持 API 11 或更高版本的设备上才会遵守此标志。
遗憾的是,我找不到任何使用 IntentCompat 函数的示例,并且描述与意图标志文档一样模糊和混乱
问题
我该如何克服这个问题?
我真的应该为每个活动添加一个LocalBroadcastManager来监听这个事件,并在它发生时关闭它们吗?
也许我在这里遗漏了一些东西?IntentCompat 类上显示的其他功能是什么?也许其中一个可以帮助解决这个问题?
请帮忙。
编辑:似乎Intent.FLAG_ACTIVITY_MULTIPLE_TASK完成了不专注于先前活动的工作,但文档对其工作方式的描述非常模糊,并且也有很多警告。
我注意到即使我们关闭了新的活动,应用程序的前一个任务也不会获得焦点,所以它会回到用户之前访问过的地方。
有谁知道这个标志是如何工作的,我应该知道什么?在这种情况下使用是否安全?
如果我找不到任何其他解决方案,我想我会将其添加为答案。