我有一个在 ActivityA 上调用 StartActivity 的前台服务。如果 ActivityA 不在前台,则显示给用户。如果 Activity 在前台,服务仍然调用 StartActivity,Activity 接收到一个新的 Intent 并相应地更新自己。
用户可以与 ActivityA 交互,它将 ActivityB 显示为弹出窗口(Theme.Dialog),在此期间 ActivityA 暂停。现在,如果服务检测到另一个事件,它会再次调用 StartActivity。不过这一次,我不想导航到 ActivityA。我希望用户仍然可以看到 ActivityB 弹出窗口并让 ActivityA 在后台自行更新。
是否有任何标志可以添加到服务启动的意图中,如果它已启动但已暂停,它将阻止导航到 ActivityA?
其他信息:
1.如果我让 ActivityA 将 ActivityB 带回前台,ActiviyB 最终会闪烁并且看起来不太好。
2.让服务使用 ActivityManager 来确定是否显示 ActivityB。如果是,则广播一个将被 ActivityA 监听的意图并强制它更新,而不是调用 StartService。但这将服务与两个活动结合在一起,需要更多编码,并且会迫使我将服务调用同步到主线程以避免时间问题。
我真的希望有一些简单的事情我可以做,比如在意图上设置一些标志。或者在ActivityA中捕获intent,更新activity,但是取消intent来阻止屏幕导航。
有什么建议么?
注意:不使用 Android 通知栏。了解不建议从服务开始活动。我们对此有特殊需求。