我正在开发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变量在我的服务中是静态的。
我想提出改进代码质量的建议,特别是同步我的位置代码。
提前致谢
答案 0 :(得分:0)
您实际上不需要同步OnLocationChanged中刚刚收到的位置。但似乎你想要同步currentLat和currentLong。你这样做的方法是使currentLat和currentLong与public getter和setter私有,并同步get / set函数。如:
public void synchronized setCurrentLat(double latitude){
currentLat = latitude;
}
确保currentLat本身是私有静态的。如有任何其他问题,请随时提出!