Android 仅当位置更改时更新位置

Android 仅当位置更改时更新位置,android,android-studio,gps,location,Android,Android Studio,Gps,Location,目前,我使用next函数来处理位置更改 locationManager.requestLocationUpdates(bestProvider, (60000), 1000, (LocationListener) this); 但问题是,系统将等待检查位置是否更改的最短时间(以毫秒为单位),直到时间过去,在我的情况下是60000毫秒 我的问题是,如果用户移动一定距离(以米为单位)而不使用任何等待时间,是否有任何方法可以使onLocation更改仅触发 谢谢。您可以使用推荐的而不是Locati

目前,我使用next函数来处理位置更改

locationManager.requestLocationUpdates(bestProvider, (60000), 1000, (LocationListener) this); 
但问题是,系统将等待检查位置是否更改的最短时间(以毫秒为单位),直到时间过去,在我的情况下是60000毫秒

我的问题是,如果用户移动一定距离(以米为单位)而不使用任何等待时间,是否有任何方法可以使onLocation更改仅触发


谢谢。

您可以使用推荐的而不是LocationManager(它应该更准确,提供更好的电池性能),并且您可以在上设置一些过滤器,您可以将其作为位置查询的参数提供。具体而言,您会对这种方法感兴趣:

那正是你想要的。 同时检查:、和其他

您可以将它们组合使用,如下所示:

private void startLocationUpdates() {
    final LocationRequest locationRequest = LocationRequest.create().setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY).setInterval(LOCATION_UPDATE_INTERVAL)
        .setFastestInterval(LOCATION_UPDATE_FASTEST_INTERVAL).setSmallestDisplacement(LOCATION_UPDATE_SMALLEST_DISPLACEMENT_METERS);
    LocationServices.FusedLocationApi.requestLocationUpdates(googleApiClient, locationRequest, locationListener);
}