0

我的要求是每 90 秒获取一次位置更新。我为此使用网络提供商。

我这样做如下所示:

locationManager.requestLocationUpdates(
        LocationManager.NETWORK_PROVIDER, 
        MINIMUM_TIME_BETWEEN_UPDATES, 
        MINIMUM_DISTANCE_CHANGE_FOR_UPDATES,
        new MyLocationListener());

在这里,在这个方法中,我传递90000了 asMINIMUM_TIME_BETWEEN_UPDATES0as MINIMUM_DISTANCE_CHANGE_FOR_UPDATES,所以预期的结果是onLocationChanged()应该每秒钟调用一次侦听器方法90

但结果是该onLocationChanged()方法首先在几秒钟内被调用75,然后在105几秒钟内被调用,然后是75, 105, ... 等等。

我的要求是每秒更新一次 90位置,而不是不同的持续时间/周期。如果找不到给定更新的位置,我想获取最后一个已知位置。

请建议我解决此问题的方法。

4

2 回答 2

0
  1. 将 MINIMUM_DISTANCE_CHANGE_FOR_UPDATES 的值设置为 500 或其他值,但不为零。

  2. 如果您想要您的最后一个已知位置,请使用

Location loc = LocationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

于 2013-01-09T12:46:13.217 回答
0
if (mNetworkEnabled) {
    mLocationMgr.requestLocationUpdates(
            LocationManager.NETWORK_PROVIDER, 0, 0,
            locationListenerNetwork);
} 

在我的应用程序中,我正在使用这样的位置管理器。在这里看到同样的问题: Android:requestLocationUpdates 最多每 45 秒更新一次位置

于 2013-01-09T13:01:54.353 回答