使用了requestLocationUpdates()但未获得一致的更新

时间:2012-07-02 17:55:50

标签: android localization location

我试图以固定的间隔定期更新位置。现在,我正在测试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);

如果您要求进行单次更新,是否需要重新安排定期更新?

1 个答案:

答案 0 :(得分:1)

如果您请求单个更新,那么是的,您必须重新安排它以便将来更新。至于请求期间更新不一致,它在文档中说明了这一点。更新可能比您选择的时间段更长(或甚至可能更短)。