如何与意向服务的后台活动进行通信

时间:2015-11-01 19:08:35

标签: android android-activity android-intentservice

所以我有一个Activity,它持有一些数据MyData。我有一个后台IntentService,它定期运行并更新数据库中的数据,我希望在后台活动到达前台时重新加载。但是我想只在后台服务运行时重新加载。我使用了广播接收器,但只有当活动在前景时才有效。如果活动在后台,它不会收到任何事件。

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

有人能建议更好的解决方案吗?感谢。

1 个答案:

答案 0 :(得分:0)

简单的方法?使用静态方法,如MyIntentService.didAnythingChange()(确保在活动重新加载时清除该标志)。或者也许是序列号,因此您的活动中会出现类似if (this.updateNo != MyIntentService.getLatestUpdateNo())的内容。

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