Android Fused Location Provider返回缓存的位置?

时间:2019-10-15 08:59:45

标签: android fusedlocationproviderapi

我的应用程序具有检测用户位置的功能,并且在我开始请求位置更新时有时间戳记

LocationRequest mLocationRequest = LocationRequest.create();
mLocationRequest.setInterval(100);
mLocationRequest.setPriority(LocationRequest.PRIORITY_LOW_POWER);
mLocationRequest.setFastestInterval(100);
long startLocationUpdateTime = SystemClock.elapsedRealtimeNanos();
LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, mLocationListener);

当我收到位置更新信息时,我还会记录位置修复的时间戳

@Override
public void onLocationChanged(Location location) {
   long locationElapsedTime = location.getElapsedRealtimeNanos();
   // start process location update from here
}

大多数时候它可以正常工作,但是我看到一些日志显示startLocationUpdateTime大于locationElapsedTime。我了解在这种情况下,Fused Location Provider返回在我请求位置更新之前计算的缓存位置数据。

我错了吗?有人可以帮我解释为什么会这样吗?是否有设置来强制“位置信息提供者”始终返回新位置?

0 个答案:

没有答案