我试图以固定的间隔定期更新位置。现在,我正在测试2分钟,以确保工作正常。然后我会把它推到更长的时间间隔。
以下是相关代码:
public final int LOCATION_TIMER_RATE=120000;
locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
Log.d("BLAH", "Recorded home location as: (" + location.getLatitude() + "," + location.getLongitude() + ")");
}
public void onStatusChanged(String provider, int status, Bundle extras) {}
public void onProviderEnabled(String provider) {}
public void onProviderDisabled(String provider) {}
};
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, LOCATION_TIMER_RATE, 0, locationListener);
如果我请求单次更新,如下所示,我总是在20秒左右的时间内收到回复。但是,在那之后,我仍然没有得到我的定期更新:
locationManager.requestSingleUpdate(LocationManager.NETWORK_PROVIDER, locationListener, null);
如果您要求进行单次更新,是否需要重新安排定期更新?
答案 0 :(得分:1)
如果您请求单个更新,那么是的,您必须重新安排它以便将来更新。至于请求期间更新不一致,它在文档中说明了这一点。更新可能比您选择的时间段更长(或甚至可能更短)。