我正在尝试使用 MapBox Android SDK 实现一个简单的位置跟踪器。即使应用程序在后台运行,我也希望持续跟踪。在 MapBox 示例以及 API 文档中,声明必须在活动的 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);
}
});
}
Run Code Online (Sandbox Code Playgroud)
这是 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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果应用程序在后台,是否有推荐的方法来接收 MapBox 位置更新?是否有自定义服务实现或类似的东西?如果没有,只调用 MapView.onDestory() 就足够了吗?谢谢
| 归档时间: |
|
| 查看次数: |
720 次 |
| 最近记录: |