Android 如何从intent service与后台活动通信

Android 如何从intent service与后台活动通信,android,android-activity,android-intentservice,Android,Android Activity,Android Intentservice,所以我有一个活动,它保存了一些数据MyData。我有一个后台IntentService,它定期运行并更新数据库中的数据,我喜欢在后台活动进入前台时重新加载这些数据。但是,我只想在后台服务运行时重新加载。我使用了广播接收器,但这些接收器只有在活动处于前台时才能工作。如果活动位于后台,则不会接收任何事件 我想的另一种方法是,当我的IntentService运行时,在首选项中写入一个标志“重新加载”,然后当后台活动恢复时,它会检查该标志并在必要时重新加载,然后再次将其设置为false 有人能提出更好的

所以我有一个活动,它保存了一些数据MyData。我有一个后台IntentService,它定期运行并更新数据库中的数据,我喜欢在后台活动进入前台时重新加载这些数据。但是,我只想在后台服务运行时重新加载。我使用了广播接收器,但这些接收器只有在活动处于前台时才能工作。如果活动位于后台,则不会接收任何事件

我想的另一种方法是,当我的IntentService运行时,在首选项中写入一个标志“重新加载”,然后当后台活动恢复时,它会检查该标志并在必要时重新加载,然后再次将其设置为false


有人能提出更好的解决方案吗?谢谢。

简单的方法?使用静态方法,例如
MyIntentService.didAnythingChange()
(确保在活动重新加载时清除该标志)。或者可能是一个序列号,这样您的活动中就有了类似于
的if(this.updateNo!=MyIntentService.getLatestUpdateNo())

复杂的方式?在活动中使用动态注册的BroadcastReceiver,并从IntentService发送匹配的广播。让BroadcastReceiver在活动中设置一个标志