Android上的MapBox:在应用程序处于后台时接收位置更新

时间:2016-07-01 11:36:50

标签: android mapbox

我正在尝试使用MapBox Android SDK实现一个简单的位置跟踪器。即使应用程序在后台运行,我也希望持续跟踪。在MapBox示例以及API文档中,声明必须在activity的onPause中调用MapView.onPause()。但如果调用此方法,则跟踪会停止,并且我不会收到位置更新。

这是我的onCreate:

@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
    MapView mapView = (MapView) findViewById(R.id.map);
    mapView.onCreate(savedInstanceState);

    mapView.getMapAsync(new OnMapReadyCallback() {
        @Override
        public void onMapReady(MapboxMap mapboxMap) {
            mapbox = mapboxMap;
            mapbox.setMyLocationEnabled(true);
            mapbox.getMyLocation();
            mapbox.setOnMyLocationChangeListener(MainActivity.this);
        }
    });
}

这是onLocationChangedListener

@Override
public void onMyLocationChange(@Nullable Location location) {
    if(location != null) {
        if(locationList.size() == 0 || !areEqual(location, locationList.get(locationList.size() - 1))){
            locationList.add(location);
            location.getSpeed();
            computeDistance();
            addPolyline();
        }
    }
}

如果应用程序在后台,是否有推荐的方法来接收MapBox位置更新?是否有自定义服务实现或类似的东西?如果没有,只需调用MapView.onDestory()即可。 感谢

0 个答案:

没有答案