Следующие методы используются для запуска и остановки отслеживания местоположения с помощью моего приложения для непрерывного опроса местоположения почти каждую минуту. Я хотел бы захватить местоположение только тогда, когда есть изменение в координатах. Мне интересно, есть ли какой-либо метод, который будет делать сравнение и получать местоположение, когда есть изменение.
Я попытался вручную сравнить координаты, которые замедляют запросы. Пожалуйста, сообщите.
public void stopTracking() {
if (time != null) {
time.cancel();
}
time = null;
LocationManager.getLocationManager().setLocationListener(null);
}
public void startTracking() {
if (time != null) {
stopTracking();
}
if (Preferences.get("LocationTracking", true)) {
long delay = Server.instance.getLoctionPollingIntervalMillis();
LocationManager.getLocationManager().setLocationListener(this,
new LocationRequest(LocationRequest.PRIORITY_LOW_ACCUARCY, delay));
time = new Timer();
time.schedule(new TimerTask() {
@Override
public void run() {
if (lastLocation != null) {
double lat = (double) lastLocation.getLatitude();
double lot = (double) lastLocation.getLongitude();
Server.instance.updateLocationInServer(lat, lot, System.currentTimeMillis(), true);
}
}
}, 30000, delay);
}
}