嗨我希望每5秒钟获得一次用户位置,用户可以更改持续时间,如10秒,15秒到30秒我有微调器选择此选项
这是我的要求
private static final LocationRequest REQUEST = LocationRequest.create()
.setInterval(5000) // 5 seconds
.setFastestInterval(16) // 16ms = 60fps
.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
这是启动我的开始更新
private void startPeriodicUpdates(int intervel) {
stopPeriodicUpdates();
REQUEST.setInterval(intervel);
mLocationClient.requestLocationUpdates(REQUEST, this);
// mConnectionState.setText(R.string.location_requested);
}
我可以将用户选择的间隔传递给startPeriodicUpdates()方法,如startPeriodicUpdates(5000),startPeriodicUpdates(15000)。但他们的位置更新持续时间工作正常15秒和超过15秒 如果我给出5秒或10秒,则位置更新每秒运行
06-18 18:46:23.638: I/Location(2860): Location Changed Location[fused 65.966697,-18.533300 acc=4 et=+1h0m13s881ms alt=15.044444]
06-18 18:46:24.642: I/Location(2860): Location Changed Location[fused 65.966697,-18.533300 acc=4 et=+1h0m14s883ms alt=15.044444]
06-18 18:46:25.642: I/Location(2860): Location Changed Location[fused 65.966697,-18.533300 acc=4 et=+1h0m15s883ms alt=15.044444]
日志显示时间间隔为23,24,25请提出您的想法。
答案 0 :(得分:1)
setInterval
方法并不准确。 This is mentioned in the documentation.
此外,对setFastestInterval
和setInterval
使用相同的时间间隔可以防止您的应用以比setInterval
中指定的时间间隔更快的速度接收位置更新。
只需将REQUEST.setFastestInterval(intervel);
添加到您的startPeriodicUpdates
方法。