如何在不使用时关闭Mapbox中的跟踪?

时间:2017-06-19 01:42:17

标签: android mapbox mapbox-gl

所以我有一个包含4个片段的ViewPager。第三个片段是MapBox。现在当第3页打开时,它将调用onMapReady,这是配置跟踪的最佳时间,就像样本上的那样。

        mMapboxMap = mapBoxMap;
    mMapboxMap.setMinZoomPreference(Constants.MIN_ZOOM);
    mMapboxMap.setMaxZoomPreference(Constants.MAX_ZOOM);
    mMapboxMap.getMyLocationViewSettings().setPadding(0, 0, 0, 0);
    mMapboxMap.getMyLocationViewSettings().setAccuracyTintColor(ContextCompat.getColor(getContext(), R.color.color_location_accuracy_tint));
    mMapboxMap.getMyLocationViewSettings().setForegroundTintColor(ContextCompat.getColor(getContext(), R.color.color_location_tint));
    mMapboxMap.getTrackingSettings().setDismissAllTrackingOnGesture(true);
    mMapboxMap.setMyLocationEnabled(true);
    mMapboxMap.setOnCameraChangeListener((CameraPosition p) -> onCameraChange(p));
    mMapboxMap.setOnScrollListener(() -> onMapScroll());

    mPermissionManager = new PermissionsManager(this);
    mLocationEngine = AndroidLocationEngine.getLocationEngine(getActivity());
    mLocationEngine.activate();

    enableTracking(true);

当我切换回第1页时,将根据ViewPager行为丢弃第3页。问题是,它仍然跟踪GPS,因为我可以看到通知栏仍然有GPS指示灯。

我这样终止它:

    mLocationEngine.removeLocationUpdates();
    mLocationEngine.deactivate();
    mLocationEngine.removeLocationEngineListener(mLocationEngineListener);
    enableTracking(false);

这是我的enableTracking方法:

public void enableTracking(boolean enable)
{
    mMapboxMap.getTrackingSettings().setMyLocationTrackingMode(enable? MyLocationTracking.TRACKING_FOLLOW : MyLocationTracking.TRACKING_NONE);
}

为什么会发生这种情况?

1 个答案:

答案 0 :(得分:2)

看起来你{4}}出现在Mapbox使用的基础位置库中。这应该在下一个版本5.1.0中修复。