MinTime jest tylko wskazówką dla LocationProvider, a to nie znaczy, że lokalizacja słuchacz będzie nazwane raz na 6 sekund. Otrzymasz więcej aktualizacji lokalizacji i do kodu, aby wybrać najbardziej dokładny.
Monitoruj ikonę GPS w telefonie. Wywołanie requestLocationUpdates uruchomi GPS, aby wskazać Twoją lokalizację, i wyśle jedną lub więcej aktualizacji lokalizacji do listy lokalizacji, jeśli jest w stanie uzyskać poprawkę. (W tym momencie ikona GPS powinna być animowana podczas wyszukiwania lokalizacji).
W tym czasie Twoja lista lokalizacji może otrzymać kilka aktualizacji lokalizacji. Twój kod może wybrać najdokładniejszą lokalizację i przetworzyć tylko tę.
Po wysłaniu aktualizacji lokalizacji do odbiornika przez GPS, powinien nastąpić okres bezczynności. (ikona GPS powinna zniknąć na kilka sekund). Ten okres bezczynności powinien odpowiadać twojemu minTime. Status GPS również się zmieni, ponieważ zostanie wprowadzony do TEMPORARILY_UNAVAILABLE.
Później ten sam proces powtarza się. (GPS staje się DOSTĘPNY, a ty ponownie otrzymasz jedną lub więcej aktualizacji lokalizacji).
Weź również pod uwagę, że jeśli GPS nie może uzyskać poprawki lokalizacji, ikona GPS pozostanie aktywna przez ponad 6 sekund, ale nie będziesz otrzymywać aktualizacji lokalizacji.
Można również monitorować stan swojego dostawcy GPS przez słuchacza, poprzez następujący sposób:
public void onStatusChanged(String provider, int status, Bundle extras) {}
status jest jeden z następujących stałych zdefiniowanych na android.location.LocationProvider
public static final int OUT_OF_SERVICE = 0;
public static final int TEMPORARILY_UNAVAILABLE = 1;
public static final int AVAILABLE = 2;
Zajrzyj na stronę Understanding the LocationListener in Android, gdzie znajdziesz przykład zachowania minTime oraz scenariusz (w tym niektóre rejestrowanie), które pomogą ci zrozumieć, co się dzieje.
Należy pamiętać, że modyfikowanie parametrów minTime i minDistance w menedżerze lokalizacji LocationManager oraz działanie w oparciu o aktualizacje statusu GPS umożliwiają precyzyjne dostosowanie rozwoju lokalizacji użytkownika.
Dzięki za odpowiedź, bardzo mi to pomogło w moim własnym projekcie. Pomyślałem, że mogę po prostu użyć API "tak, jak to zrozumiałem", bez czytania faktycznego odniesienia, i uznałem, że cały proces pobierania dokładnej aktualizacji lokalizacji nastąpi za sceną; i że tylko wtedy mój LocationListener zostanie poinformowany (po określonym czasie lub przebytej odległości).Jestem pewien, że większość ludzi zinterpretowałaby to w ten sposób przy pierwszej próbie, ale teraz widzę, jak to działa, musiałem przerobić trochę mój kod - przynajmniej działa! Jeszcze raz dziękuję za wyraźną odpowiedź! – Warkst