Android locationManager.requestlocationupdates mit Mintime> 0 funktioniert nicht wie erwartet
-
27-09-2019 - |
Frage
ich setze
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 0f, this);
Es hat ein seltsames Verhalten, StandortChanged wird jede Sekunde anstelle einer Zeit in der Nähe von 1 Minute aufgerufen. Zweitens wird locationChanged jede Sekunde für ungefähr 10 Sekunden aufgerufen, dann wird das GPS -Satalites -Symbol vollständig angehalten und wieder aufgenommen, wenn der Bildschirm vom Display -Timeout zurückkehrt.
was ist los?
Ich bin derzeit auf Android 1.5.
Lösung
Der Mintime (60000) ist nur ein Hinweis, und es gibt keine Garantie dafür, dass Ihr Standortlistener in einem genauen Intervall von 1 Minute einnimmt. In Kombination mit der Mindistance = 0 erhalten Sie wahrscheinlich viel mehr Updates.
Ich würde die Mindistanz auf 1 m Minimum erhöhen und die Vergütungslogik implementieren, um das 1 -minütige Intervall in Ihrem Code zu erreichen. Sie locationListener können so implementiert werden, dass, wenn Standortaktualisierungen zu genau folgen, sie ignoriert und nicht verarbeitet werden.
Sie erhalten auch verschiedene Orte über Ihren Standorthörer mit einer anderen Genauigkeit in diesem winzigen Intervall.
Ihr Standorthörer kann die beste Genauigkeit auswählen und sich daran erinnern, wann der letzte Standort durch die Aufrechterhaltung des Staates (LastLocation Processedat) verarbeitet wurde.