2015-11-01 62 views
0

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

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

任何人都可以提出更好的解决方案吗?谢谢。

回答

0

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

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