Android 服务(位置侦听器)更新 activity

Android service (location listener) to update activity

我有一个 activity 显示带有标记的地图。我还有一个位置侦听器,其值将更新 activity arraylist 并根据更新的 arraylist 值重新绘制标记。

我希望它总是 运行(即使 activity 放在后台)。我知道 Activity 可能会被杀死,所以我希望我需要为位置监听器提供服务。现在我的问题是:当服务实际上是获取信息时,如何更新 activity arraylist 并重绘内容?

我阅读了一些关于 boundservice 的内容,也许我需要它?但是,即使 activity 被杀死,我也需要 运行ning 服务。

或者我是否只创建服务然后向 activity 发送广播?

谢谢

就像您在 post 末尾写的那样,您可以为此使用 BroadcastReceiver。这就是我使用它的方式。 在您的 ActivityonCreate(...) 中,在本地注册:

LocalBroadcastManager.getInstance(this).registerReceiver(...);

在接收器的 onReceive(...) 方法中,更新所需数据并在 Activity 的 onDestroy() 方法中取消注册,再次使用 LocalBroadcastManager 对象。

不用说,您从 ServiceonLocationChanged(...) 方法发送广播信号,因为它与您的 Activity 在同一个包中,LocalBroadcastManager 将转发向您的 Activity.

发送信号
LocalBroadcastManager.getInstance(this).sendBroadcast(...);