同步位置代码Android

时间:2012-09-10 05:15:55

标签: android google-maps location executorservice android-location

我正在开发Android上的GPS定位服务。我在Android服务中实现了我的GPS位置代码。这是我的位置代码的快照。在我的应用程序中,还有其他线程并行工作以将这些位置坐标发送到服务器。

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

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

我对同步我的位置代码感兴趣,这样当我在地图上更新这些值,执行计算或使用这些值通过网络发送数据时,可能不会出现Dirty Read问题。 currentLat和currentLon变量在我的服务中是静态的。

我想提出改进代码质量的建议,特别是同步我的位置代码。

提前致谢

1 个答案:

答案 0 :(得分:0)

您实际上不需要同步OnLocationChanged中刚刚收到的位置。但似乎你想要同步currentLat和currentLong。你这样做的方法是使currentLat和currentLong与public getter和setter私有,并同步get / set函数。如:

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

确保currentLat本身是私有静态的。如有任何其他问题,请随时提出!