我设置
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 0f, this);
它有一个奇怪的行为,locationChanged 每秒被调用一次,而不是接近 1 分钟的任何时间。其次, locationChanged 每秒调用一次,持续大约 10 秒,然后完全停止,gps satalites 图标消失,然后仅在屏幕从显示超时返回时再次恢复。
怎么了?
我目前使用的是安卓 1.5。
我设置
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 0f, this);
它有一个奇怪的行为,locationChanged 每秒被调用一次,而不是接近 1 分钟的任何时间。其次, locationChanged 每秒调用一次,持续大约 10 秒,然后完全停止,gps satalites 图标消失,然后仅在屏幕从显示超时返回时再次恢复。
怎么了?
我目前使用的是安卓 1.5。
minTime (60000) 只是一个提示,并不能保证您的 locationlistener 会以精确的 1 分钟间隔启动。结合 minDistance=0,您可能会收到更多更新。
我会将 minDistance 增加到 1m 最小值,并实现补偿逻辑以在您的代码中实现 1 分钟间隔。您可以通过以下方式实现 LocationListener:如果位置更新太紧,它们将被忽略且不处理。
您还将通过您的位置侦听器以不同的精度获得不同的位置,所有这些都在该分钟间隔内。
您的位置侦听器可以选择最佳准确度,并通过维护状态 (lastLocationProcessedAt) 记住最后一个位置的处理时间。