考虑用户打开应用并直接活动A 的情况。 OnCreate
方法创建在后台运行的服务。
this.StartService(new Intent(this, typeof(MyService)));
此服务独立于活动运行,因此如果用户关闭或销毁应用程序,则服务仍在运行。
在活动A 中,我通过RegisterReceiver
注册了几个接收器,因此当我的后台服务中发生某些事情时,我会通过发送广播来更新活动A 。
我面临的问题是当用户从活动A 转到活动B 时。此时服务正在发送广播,需要在活动A 上更改某些内容,但由于它不在前台,我不会通过接收器更新。因此,当用户从活动A 返回活动B 时,用户会看到旧数据。服务会以不规则的间隔进行更新。
更新后台活动然后转到前台的正确方法是什么?在活动中获取服务引用或数据的适当方法是什么?
据我了解,如果我使用绑定服务,它将在应用程序被杀死时被销毁。我不希望这样。所有教程仅显示如何更新前台活动。
我刚刚开始了解android,所以也许我错过了一些明显的小细节。
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以使用Context#sendStickyBroadcast
。它已被弃用,但仍然有效。当它前进时,你的活动将得到这样的广播。获得后不要忘记Context#removeStickyBroadcast
。