【发布时间】:2014-06-13 00:18:35
【问题描述】:
我正在尝试来自 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
}
如何更改 onLocationChanged 中的间隔?
我认为问题在于 requestLocationUpdates 重置了最后一个请求,然后立即发送另一个通知。所以创建了一个循环。 (比最快间隔快)。所以我需要一种可靠的方法来更改“实时”LocationRequest 的间隔
【问题讨论】:
-
这也不起作用:locClient.requestLocationUpdates(mLocationRequest, this,Looper.getMainLooper());
-
您是否尝试过
onLocationChanged()回调之外的mLocationRequest.setInterval(1000);行?例如,在mLocationRequest对象的初始化时。 -
是的 - 实际上你在哪里调用它并不重要。
-
您是否尝试过其他事件,例如事件名称中的“onbefore”?
标签: android google-play-services android-location