android - google maps v2 - 不断更新服务位置

时间:2016-02-03 07:59:35

标签: android google-maps android-service android-location android-googleapiclient

我已关注此tutorial,现在我正在使用Google地图片段进行工作。

我需要跟踪我的应用用户的位置 - 该片段有一个onLocationChanged方法,当位置发生变化时会触发该方法,并且在该方法上我更新我的数据库使用用户的位置,在地图上绘制用户以及更多内容。

唯一的问题是 - 我希望还有一个服务,它会始终向我的数据库发送更新并更新每个用户的位置,同时应用关闭< /强>

我应该以某种方式将onLocationChanged方法放在片段和服务中吗?因为当应用程序位于前台时,除了更新数据库之外,我还会在onLocationChanged上执行更多操作,例如绘制地图等。

1 个答案:

答案 0 :(得分:0)

为什么不让您的服务接收所有位置更新,并使用LocalBroadcastManager通过位置更新来广播对使用intent过滤器注册内部BroadcastReceiver的任何片段或活动的位置更新?以下是关于如何使用LocalBroadcastManager的{​​{3}}。另外,这是我如何制作内部BroadcastReceivers

的示例
static class InternalBroadCastReceiver extends BroadcastReceiver{

    MyFragment mMyFragment;

    public InternalBroadCastReceiver(MyFragment fragment){
        mMyFragment = fragment;
    }

    @Override
    public void onReceive(Context context, Intent intent) {

        final MyFragment fragment = mMyFragment;

        if (fragment != null) {
            Location location = intent.getParcelableExtra("myLocation");

            //...  Do something with your location here, for example:
            fragment.updatemap(location);
        }
    }
}