微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android 固定时间级位置更新精确

如何解决Android 固定时间级位置更新精确

大家好,欢迎您提出任何建议。

我创建了一个 locationHelper 类,负责管理轨道应用程序(带有地图活动)上的 Gps 位置(locationManager)。

在地图活动中,我有一个 rec 切换按钮来开始/停止记录航点,还有一个 textview 显示 recTime(以秒为单位),当 saveState 为真时。

注意:我需要 GPS 定位(精确定位)

还有一个中间类负责设置保存状态、文件创建等。 它从位置助手获取经度和纬度,并附加一些其他信息(记录时间、日期等),然后将航点发送到保存它们的文件

更新我使用的所有观察者模式:

  1. 位置助手通过经度-纬度通知轨迹
  2. 使用坐标、rectime(以秒为单位)等跟踪通知地图活动。

我可以每秒保存一个航点,所以我设置: locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000,this);

也就是说,我的问题是 locationManager 不会每秒更新一次,我可以在活动中通过 rectime (textview) 看到它。有时需要 2 到 3 秒才能更新。

我在文档中读到 requestLocationUpdates,如果它设置了固定的时间速率,更新可能需要更长的时间。

..所以我尝试在 locationHepler 中实现一个 Timer,以确保每秒更新一次,但它会产生一个错误,因为线程试图在 Activity 之外更新 Activity。

所以,说我理解了这个问题,有没有办法保持我的类结构(有观察者)并确保每秒钟更新一次?

注意:我会避免:

  • 在活动中移动 locationManager 以在活动线程内更新它
  • 由于类结构,完全移除观察者(track 负责 repo 模式和许多其他事情,因此必须通过坐标通知它)

感谢您的任何贡献。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。