2011-09-14 49 views
0

我想在Android上LocationListener的索要更新每5秒Android的位置監聽器不更新的時候我告訴

我這樣做:

locMgr.requestLocationUpdates(high.getName(), (long) 5000, 0, 
    UpdL1 = new LocationListener() { 
    public void onLocationChanged(Location location) { 
    // do something here to save this new location 
    if (location != null) { 
     // 
     updateARLoc(location.getLatitude(),location.getLongitude()); 
     // 
     if(!creada){ 
     locMgr.removeUpdates(UpdL1); 
     } 
     } else { 
     }  
    } 

我告訴它來更新每個毫秒,即5秒。但它始終在不斷更新。 logcat告訴我,每500毫秒更新一次。 (每 「A」 的印刷是從收聽的更新)右下爲requestLocationUpdates方法參數

09-14 14:57:29.998: INFO/info(3456): A 
    09-14 14:57:30.018: INFO/info(3456): A 
    09-14 14:57:30.918: INFO/info(3456): A 
    09-14 14:57:30.928: INFO/info(3456): A 
    09-14 14:57:31.988: INFO/info(3456): A 
    09-14 14:57:31.998: INFO/info(3456): A 
    09-14 14:57:32.958: INFO/info(3456): A 
    09-14 14:57:32.988: INFO/info(3456): A 
    09-14 14:57:33.948: INFO/info(3456): A 
    09-14 14:57:33.948: INFO/info(3456): A 

回答

0

http://developer.android.com/reference/android/location/LocationManager.html#requestLocationUpdates(java.lang.String,長整型,浮點,android.location.LocationListener)

它指出:

「通知的最小時間間隔(以毫秒爲單位),該字段僅用作提示以節省電源,位置更新之間的實際時間可能大於或小於此值。」

requestLocationUpdates()使Droid的GPS嘗試修復您的位置。在嘗試獲取修復程序時,您的locationlistener可能會獲得大量位置更新。

接收到位置更新後,GPS應該關閉您在mintime參數中指定的時間量。

0

如你的Android文檔中找到:

的通知頻率可以使用minTime和minDistance纔會參數來控制。如果minTime大於0,LocationManager 可能會在位置更新之間休息minTime毫秒以節省電量。如果minDistance大於0,則只有當設備通過minDistance米移動時纔會廣播位置。要儘可能頻繁地獲取通知,請將這兩個參數設置爲0.

換句話說,如果您的設備不需要節省電量,它會在需要時發送更新。

此外,您已將minDistance參數設置爲0,這意味着您希望每隔0米更新一次(以便儘可能經常更新)。

+0

我不認爲這就是文檔的意思。這是說,在修復完成後,GPS不會向您發送x個毫秒的更新。 – bgroenks