我有一个活动,显示带有标记的地图。此外,我还有一个位置监听器,其值将更新活动arraylist并根据更新的arraylist值重新绘制标记。
我希望它始终运行(即使活动放在后台)。我知道Activity可能会被杀死所以我希望我需要一个服务来定位lisntener。现在我的问题是:当服务实际上是获取信息的时候,如何更新活动arraylist和重绘内容?
我读了一些关于boundservice的内容,所以也许我需要它?但是,即使活动被杀死,我也需要运行服务。
或我是否只是创建服务然后向活动发送广播?
谢谢
答案 0 :(得分:1)
就像您在帖子末尾写的那样,您可以使用BroadcastReceiver
。这就是我使用它的方式。
在onCreate(...)
的{{1}}中,在本地注册:
Activity
在接收方的LocalBroadcastManager.getInstance(this).registerReceiver(...);
方法中,使用onReceive(...)
对象再次更新所需数据并在活动的onDestroy()
方法中取消注册。
毋庸置疑,您从LocalBroadcastManager
Service
方法发送广播信号,因为它与您的活动在同一个包中,LocalBroadcastManager会将信号转发给您活性。
onLocationChanged(...)