Я пробую пример «LocationUpdates» с http://developer.android.com/training/location/receive-location-updates.html . Это приложение получает и распечатывает уведомления о местоположении.
Я пытаюсь изменить интервал обновления местоположения в соответствии с моим последним местоположением.
Итак, я добавил mLocationRequest.setInterval() в onLocationChanged.
Результат очень неправильный. Мое приложение засыпано множеством обновлений местоположения (несколько секунд!!!!)
Мое единственное изменение в образце заключается в следующем:
private int x=0;
@Override
public void onLocationChanged(Location location) {
// Report to the UI that the location was updated
mConnectionStatus.setText(R.string.location_updated);
// In the UI, set the latitude and longitude to the value received
mLatLng.setText(String.valueOf(x++));
mLocationRequest.setInterval(1000); // Change 1
mLocationClient.requestLocationUpdates(mLocationRequest, this); // Change 2
}
Как я могу изменить интервал внутри onLocationChanged?
Я думаю, что проблема в том, что requestLocationUpdates сбрасывает последний запрос, а потом сразу отправляет другое уведомление. таким образом создается петля. (быстрее самого быстрого интервала). поэтому мне нужен надежный способ изменить интервал «живого» LocationRequest
mLocationRequest.setInterval(1000);
вне обратного вызоваonLocationChanged()
? Например, во время инициализации объектаmLocationRequest
. - person nKn   schedule 01.05.2014