位置更新

时间:2016-10-26 08:55:31

标签: android locationmanager

开发一个应用程序,通过使用Handler每秒进行一次场信号强度计算,在处理程序期间,它记录坐标并记录结果&坐标。它工作正常,除非是真正的测试,当我提高车辆的速度时,记录的坐标不是每秒,而有些时候每2-3-4秒,这是我不接受的。 以下代码:

final LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0,     0, this);

publicvoid method_01(LocationManager locationManager){

final Handler handler = new Handler();
handler.postDelayed(new Runnable() {

@Override
public void run() {
Location locationDataRate =     locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
double latitude = locationDataRate.getLatitude();
double longitude = locationDataRate.getLongitude();
x=y+1;
Save to file (latitude,longitude,x);
handler.postDelayed(this, 1000);
}
}, 1000);

}

我也试过改变时间和分钟。距离(1000,0)

1 个答案:

答案 0 :(得分:0)

首先,如果您希望每1秒钟收到一次更新,则不应请求更频繁的更新。因此:

ps -ef | grep java | grep dev | kill -9 `awk '{print $2}'`

无论如何,处理位置更新的最佳做法不是持续循环locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, this); ,而是实现位置更新的回调。有一组示例here

对于您的问题,在doc中,他们声明更新之间的间隔从未得到保证:

  

可以使用minTime控制位置更新间隔   参数。位置更新之间经过的时间永远不会   小于minTime,虽然它可能更多取决于位置   提供程序实现和其他请求的更新间隔   应用