用于更新活动的Android服务(位置监听器)

时间:2015-01-16 20:24:23

标签: android android-service

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

我希望它始终运行(即使活动放在后台)。我知道Activity可能会被杀死所以我希望我需要一个服务来定位lisntener。现在我的问题是:当服务实际上是获取信息的时候,如何更新活动arraylist和重绘内容?

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

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

谢谢

1 个答案:

答案 0 :(得分:1)

就像您在帖子末尾写的那样,您可以使用BroadcastReceiver。这就是我使用它的方式。 在onCreate(...)的{​​{1}}中,在本地注册:

Activity

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

毋庸置疑,您从LocalBroadcastManager Service方法发送广播信号,因为它与您的活动在同一个包中,LocalBroadcastManager会将信号转发给您活性。

onLocationChanged(...)