android LocationManager.requestLocationUpdates,minTime> 0未按预期工作

时间:2010-11-22 12:02:02

标签: android locationmanager

我设置

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 0f, this);

它有一个奇怪的行为,locationChanged每秒被调用而不是接近1分钟的任何时间。其次,locationChanged每秒被调用10秒,然后完全停止,gps satalites图标消失,然后仅在屏幕从显示超时返回时再次恢复。
怎么了?

我目前在Android 1.5上。

1 个答案:

答案 0 :(得分:9)

minTime(60000)只是一个提示,并且无法保证您的locationlistener将以1分钟的间隔启动。结合minDistance = 0,您可能会收到更多更新。

我会将minDistance增加到最小1m,并实现补偿逻辑以在代码中实现1分钟的间隔。您可以通过以下方式实现LocationListener:如果位置更新过于紧密,则会忽略它们并且不会处理它们。

您还可以通过位置监听器获得不同的位置,精确度不同,均在该分钟范围内。

您的位置监听器可以选择最佳准确度,并记住维护状态(lastLocationProcessedAt)处理最后一个位置的时间。

相关问题