【问题标题】:How to communicate with a background activity from intent service如何与意图服务的后台活动进行通信
【发布时间】:2015-11-01 19:08:35
【问题描述】:

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

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

谁能提出更好的解决方案?谢谢。

【问题讨论】:

    标签: android android-activity android-intentservice


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-16
      • 1970-01-01
      • 1970-01-01
      • 2021-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多