В моем приложении, которое отслеживает пройденное расстояние, у меня есть две кнопки. Первое обновление местоположения первого запуска, второе останавливает их.onLocationChanged возвращает старое местоположение
public void start(View view){
cords = new ArrayList<LatLng>();
if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) !=
PackageManager.PERMISSION_GRANTED){
return;
}
LocationServices.FusedLocationApi.requestLocationUpdates(
googleApiClient, locationRequest, this);
}
public void stop(View view) {
LocationServices.FusedLocationApi.removeLocationUpdates(googleApiClient, this);
}
Затем я объявляю onLocationChanged, где я вычисляю расстояние, которое посетил пользователь.
@Override
public void onLocationChanged(Location location) {
cords.add(new LatLng(location.getLatitude(), location.getLongitude()));
if (cords.size() > 1) {
Location previousLocation = new Location("");
previousLocation.setLatitude(cords.get(cords.size() - 2).latitude);
previousLocation.setLongitude(cords.get(cords.size() - 2).longitude);
stats.updateDistance(location.distanceTo(previousLocation));
}
}
Проблема в том, что когда я прекращаю измерения и затем запускаю их снова, местоположение возвращает старое значение. Как я мог избавиться от этой старой ценности и начать измерение расстояния из нового места.