我正在尝试使用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()即可。 感谢