0

我正在開發Android上的GPS位置服務。我已經在Android服務中實現了我的GPS位置代碼。這是我的位置代碼的快照。在我的應用程序中,還有其他線程正在並行工作,將這些位置座標發送到服務器。同步位置代碼Android

public void onLocationChanged(Location loc) { 
      if (loc != null) { 
       synchronized (lock) { 
        currentLat = loc.getLatitude(); 
        currentLon = loc.getLongitude(); 

        if (loc.hasSpeed()) { 
         float speedInMeterSec = loc.getSpeed(); 
        } 
       } 

我感興趣的,這樣,當我在地圖上更新這些值進行計算或使用這些值通過網絡發送數據,可能不會發生髒讀的問題同步我的位置的代碼。 currentLat和currentLon變量在我的服務中是靜態的。

我想提出一些改進代碼質量的建議,特別是同步我的位置代碼。

在此先感謝

回答

0

你其實並不需要同步您在OnLocationChanged剛剛收到的位置。但似乎你想同步currentLat和currentLong。你可以這樣做的方法是將currentLat和currentLong與public getter和setter私有並同步get/set函數。如:

public void synchronized setCurrentLat(double latitude){ 
currentLat = latitude; 
} 

確保currentLat本身是私有靜態的。任何其他問題,請去問!

+0

那麼這是否符合您的需求? – vkinra