我有一个调用服务的MainActivity。服务的onStart方法循环,直到达到特定变量。当达到变量时,我希望服务向用户发出警报并将MainActivity带到屏幕,以便用户可以决定是否要再次运行该服务。因为它是一个服务,MainActivity可能已经在前台,或者根本没有活动的实例。无论哪种方式,它都应该恢复MainActivity的第一个实例。我知道我必须使用诸如intent和FLAG_ACTIVITY_REORDER_TO_FRONT之类的东西。我只是不知道如何实现意图,以便即使用户在另一个应用程序或关闭应用程序,MainActivity也会被带到前台。
更新 以下链接也有助于解决我的问题。感谢你们。
Example: Communication between Activity and Service using Messaging
答案 0 :(得分:0)
您的MainActivity调用服务的事实并不意味着MainActivity将失去焦点。除非用户关闭或点击“主页”按钮,否则活动应保持焦点。我不希望服务导致Activity进入前台,它只是听起来非Android。如果实际上允许这样的事情,我希望应用程序能够请求用户发出允许这种情况发生的许可。
也就是说,您的标题表明您希望与服务中的活动进行通信。要做到这一点,你有几个选择:
在任何一种情况下,与Activity的通信都不应导致它返回到前台,因为这会给用户带来安全风险。应用程序不应该返回到前台,直到用户从应用程序抽屉中重新打开它,或者从最近的时间带回来。