C# 将数据从后台服务发送到后台当前的活动
考虑当用户打开应用程序并直接执行活动A时的场景C# 将数据从后台服务发送到后台当前的活动,c#,android,C#,Android,考虑当用户打开应用程序并直接执行活动A时的场景OnCreate方法创建在后台运行的服务 this.StartService(new Intent(this, typeof(MyService))); 该服务独立于活动运行,因此,如果用户关闭或销毁应用程序,该服务仍在运行 在活动A中,我通过RegisterReceiver注册了两个接收器,因此当我的后台服务出现问题时,我会通过发送广播更新活动A 我面临的问题是当用户从活动A转到活动B时。此时服务正在发送广播,需要在活动A上更改某些内容,但由于它
OnCreate
方法创建在后台运行的服务
this.StartService(new Intent(this, typeof(MyService)));
该服务独立于活动运行,因此,如果用户关闭或销毁应用程序,该服务仍在运行
在活动A中,我通过RegisterReceiver
注册了两个接收器,因此当我的后台服务出现问题时,我会通过发送广播更新活动A
我面临的问题是当用户从活动A转到活动B时。此时服务正在发送广播,需要在活动A上更改某些内容,但由于它不在前台,我将不会通过接收器进行更新。所以,当用户从活动A返回到活动B时,用户会看到旧数据。服务部门会不定期地进行这些更新
更新活动的正确方法是什么?它位于后台,然后转到前台?在活动中获取服务引用或数据的适当方式是什么
据我所知,若我使用绑定服务,它将在应用程序被终止时被销毁。我不想那样。所有教程仅显示如何更新前台的活动
我刚刚开始了解android,所以可能我遗漏了一些明显的小细节
您可以使用
上下文#sendStickyBroadcast
。它已被弃用,但仍在工作。当你的活动进入前台时,它会得到这样的广播。获取后,不要忘记上下文#removeStickyBroadcast
。只有在活动位于前台时,才能向活动发送广播,以解决您的问题problem@Sandeepdhiman但我如何要求这些更新?服务正在不定期地发送广播中的最新数据-下一次更新可能在5分钟后,所以我不想让用户在下一次更新之前中继数据。您检查过这个了吗