0

我正在开发 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();
                    }
                }

我有兴趣同步我的位置代码,以便在我更新地图上的这些值、执行计算或使用这些值通过网络发送数据时,可能不会发生脏读问题。currentLat 和 currentLon 变量在我的服务中是静态的。

我想听听您的建议,以提高代码质量,特别是同步我的位置代码。

提前致谢

4

1 回答 1

0

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

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

确保 currentLat 本身是私有静态的。有其他问题,请追问!

于 2012-09-14T17:16:59.900 回答