即使设备没有移动,onLocationChanged()也会被调用太多次

哈维尔·西维亚尼斯

我已经在我的Activity中实现了OnLocationChanged(Location location)作为重写的方法,如下所示:

@Override
public void onLocationChanged(Location location) {

    mCurrentLocation = location;
    if (wifiSpotList != null) {
        presenter.onLocationUpdated(wifiSpotList, mCurrentLocation);
        centerInLoc(location);
    }
}

问题是,即使设备没有移动,也会触发此方法。它总是以毫秒为间隔。

通过位置参数的调试器获取以下日志:

mTime = 1446035851646
mLongitude = -3.6923793
mLatitude = 40.5008861

mTime = 1446035856976
mLongitude = -3.6923596
mLatitude = 40.5008932

mTime = 1446035867327
mLongitude = -3.6923681
mLatitude = 40.5008987

mTime = 1446035877344
mLongitude = -3.6923778
mLatitude = 40.5008949

mTime = 1446035882442
mLongitude = -3.6923734
mLatitude = 40.5008926

...

编辑:

这是初始化requestLocationUpdates的代码:

protected void startLocationUpdates() {
    LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);
    this.locationUpdatesStarted = true;
}

编辑mLocationRequest:

protected void createLocationRequest() {
    LocationRequest mLocationRequest = new LocationRequest();
    mLocationRequest.setInterval(LOCATION_REQUEST_INTERVAL);
    mLocationRequest.setFastestInterval(LOCATION_REQUEST_FASTEST_INTERVAL);
    mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
    this.mLocationRequest = mLocationRequest;
}

是因为纵向\横向变化触发了方法?为什么即使设备不移动也触发它?我可以限制精度吗?有什么干净的方法可以实现onLocationChanged()吗?

里卡多·鲁伊斯·罗梅罗(Ricardo Ruiz Romero)
setSmallestDisplacement(float smallestDisplacementMeters)

您必须设置位置更新之间的最小距离(以米为单位)默认情况下为0。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

即使地图刚刚移动,onLocationChanged 也会被调用

onLocationChanged没有被调用

即使没有调用方法,mockito never()也会被调用吗?

onLocationChanged()方法没有被调用

即使没有通过任何进程打开设备,设备IO也会被处理吗?

即使设备没有移动,位置也会不断变化

即使没有子类覆盖它,方法实际上也会被调用吗?

onLocationChanged(位置位置)永远不会被调用

onLayoutChange()被调用太多次

FuncAnimation被调用太多次

即使只触发一次,RxJava 作为事件总线也会被多次调用

JSF preRenderView被调用太多次

pthreads 没有被调用或被多次调用而没有明显的原因

onActivityResult 永远不会被调用。没有明显的原因

函数即使没有被调用也能运行

移动构造函数没有被调用

非静态类成员即使没有析构函数也会被销毁吗?

为什么即使根本没有使用 .btn-primary 类也会被应用?

Visual Studio代码中的Git表示即使没有更改,文件也会被修改

即使没有缓存控制标头,响应也会被缓存吗?

即使没有类实例/对象,类中的打印语句也会被执行

Android LocationListener 没有点击 onLocationChanged

移动构造函数永远不会被调用

MigLayout-componentResized()被调用太多次

ListView-getView被调用太多次

删除方法被调用太多次。为什么?

即使在移动设备上调用 .hide() 后,列表 <li> 元素也不会隐藏

即使索引中没有太多数据也超出了磁盘高水位标记

Google Maps iframe在移动设备上没有圆形边框