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