我正在开发一个运行具有基本 UI 和服务的应用程序,可以接收紧急情况。如果用户在 UI 中并按下 home 或 Back,则会出现通知并且服务会继续运行。如果服务收到紧急情况,我想在 UI 中打开 Activity。为此,我必须在服务中使用带有 Intent 标志 FLAG_ACTIVITY_NEW_TASK 的 startActivity。
但这意味着,如果 UI 仍在后台运行,则不会重新打开。从那时起,我的许多 UI 交互似乎都发生在旧的隐藏 UI 上,而不是打开的新 UI。此外,如果我关闭当前的 UI,我有时会在它后面有旧的 UI。
我希望通过一项服务,我可以将旧的 ui 放在前面,也可以打开一个新的,这取决于旧的 UI 是否仍在运行。
我曾尝试同时使用 FLAG_ACTIVITY_CLEAR_TASK 和 FLAG_ACTIVITY_NEW_TASK 来清除 UI 的任何其他实例,然后在新任务中打开 UI,但 CLEAR_TASK 是 API 11 及以上;我的应用程序支持 10。
对上述任何帮助表示赞赏。