考虑用户打开应用并直接进入的场景活动A。 OnCreate
方法创建在后台运行的服务。将数据从后台服务发送到当前在后台的活动
this.StartService(new Intent(this, typeof(MyService)));
此服务独立于活动运行,因此如果用户关闭或销毁应用程序,服务仍在运行。
在活性的我通过RegisterReceiver
注册情侣接收器,所以当东西在我的后台服务发生了,我通过发送广播更新活性的。
我面临的问题是当用户从活动A到活动B。此时服务正在发送广播,需要在活动A上更改某些内容,但由于它不在前台,因此我不会通过接收方进行更新。因此,当用户从活动返回活动A到活动B时,用户会看到旧数据。服务以不规则的间隔进行这些更新。
什么是正确的方式来更新在后台,然后去前台的活动?在活动中获取服务参考或数据的适当方式是什么?
据我了解,如果我使用绑定服务,它将在应用程序被杀时被销毁。我不想那样。所有教程仅显示如何更新前景中的活动。
我只是开始了解android,所以也许我错过了一些明显的小细节。
只有在前台解决问题 –
@Sandeepdhiman,你可以发送广播到你的活动,但我该如何要求这些更新?服务以不规则的时间间隔在广播中发送最新的数据 - 下一次更新可能在5分钟后,所以我不希望用户继续传输数据,直到下次更新 –
你检查了这个https://stackoverflow.com/questions/2282435/通知活动 - 从-A-广播接收器,仅-IF-IT-是,在最前台 –