Próbuję próbki "LocationUpdates" z http://developer.android.com/training/location/receive-location-updates.html. Ta aplikacja pobiera i drukuje powiadomienia o lokalizacji.nie można ustawić interwala w onLocationChanged
Próbuję zmienić interwał aktualizacji lokalizacji zgodnie z moją ostatnią lokalizacją.
Tak - ja dodaje mLocationRequest.setInterval() do onLocationChanged
Rezultatem jest bardzo źle. Moja aplikacja jest bombardowany wielu aktualizacjach lokalizacji (kilka sekundy !!!!)
Jedyna zmiana w próbce jest taka:
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
}
Jak mogę zmienić odstęp wewnątrz onLocationChanged?
Myślę, że problem polega na tym, że requestLocationUpdates resetuje ostatnie żądanie, a następnie natychmiast wysyła kolejne powiadomienie. więc tworzona jest pętla. (szybciej niż najszybszy interwał). więc muszę niezawodny sposób, aby zmienić interwał a „na żywo” LocationRequest
To również nie działa: locClient.requestLocationUpdates (mLocationRequest, this, Looper.getMainLooper()); – DuduArbel
Czy wypróbowałeś wiersz 'mLocationRequest.setInterval (1000);' poza wywołaniem 'onLocationChanged()'? Na przykład w czasie inicjalizacji obiektu 'mLocationRequest'. – nKn
tak - w rzeczywistości nie ma znaczenia, gdzie go nazwiesz. – DuduArbel