2010-11-22 12 views
3

我設置與minTime> 0的Android LocationManager.requestLocationUpdates工作不正常

 
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 0f, this);

它有一個奇怪的行爲,locationChanged被稱爲每一秒,而不是任何接近1分鐘的時間。其次,locationChanged每秒調用10秒鐘,然後完全停止,gps satalites圖標消失,然後只在屏幕從顯示超時返回時再次恢復。
有什麼不對?

我目前在android 1.5上。

回答

9

minTime(60000)只是一個提示,並不能保證你的位置偵聽器會以1分鐘的時間間隔進入。結合minDistance = 0,您可能會收到更多更新。

我會將minDistance增加到最小值1m,並實現補償邏輯以在代碼中實現1分鐘的間隔。您可以以這樣的方式實現LocationListener,即如果位置更新過於緊密,則會忽略它們並不處理它們。

您還可以通過您的位置偵聽程序獲得不同的位置,並且具有不同的準確性,所有這些都在該分鐘內。

您的位置監聽器可以選擇最佳的準確性,並記住何時通過維護狀態(lastLocationProcessedAt)來處理上一個位置。

+0

鑑於鏈接不工作。 – 2017-04-06 07:21:00