在onLocationChanged中不能setInterval

Dud*_*bel 8 android android-location google-play-services

我正在尝试http://developer.android.com/training/location/receive-location-updates.html上的"LocationUpdates"示例.此应用程序获取并打印位置通知.

我正在尝试根据我的最新位置更改位置更新的间隔.

所以 - 我已将mLocationRequest.setInterval()添加到onLocationChanged中

结果非常错误.我的应用程序受到许多位置更新的轰炸(几秒钟!!!!)

我对样本的唯一更改是:

private int x=0;
@Override
public void onLocationChanged(Location location) {
    // Report to the UI that the location was updated
    mConnectionStatus.setText(R.string.location_updated);

    // In the UI, set the latitude and longitude to the value received
    mLatLng.setText(String.valueOf(x++));

    mLocationRequest.setInterval(1000);          // Change 1
    mLocationClient.requestLocationUpdates(mLocationRequest, this); // Change 2
}
Run Code Online (Sandbox Code Playgroud)

如何更改onLocationChanged内的间隔?

我认为问题是requestLocationUpdates重置了最后一个请求,然后立即发送另一个通知.所以创建一个循环.(比最快的间隔快).所以我需要一种可靠的方法来改变"实时"LocationRequest的间隔

Ank*_*sal 0

尝试使用mLocationRequest.setFastestInterval(long millis)
developer.android.com中提到的:

这允许您的应用程序以比主动获取位置更快的速度被动获取位置,从而节省电量。与 setInterval(long) 不同,此参数是精确的。您的应用程序接收更新的速度永远不会快于该值。