gpt4 book ai didi

android - LocationManager 过于频繁地调用 onLocationChanged?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:52:08 32 4
gpt4 key购买 nike

我已将 LocationManager 设置为每 2 分钟获取一次当前位置:

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 120000, 0, this);

这工作正常并且 onLocationChanged 按预期每 2 分钟调用一次。但是,它似乎在 10-40(随机数量)秒的范围内被多次调用 2 分钟。我记录了在 onLocationChanged 中收到的每个位置,所以这里有一些示例可以了解发生了什么:

17:30

GPS 32.0 50.66318929195404 10.735434293746948 0.0 2010.08.07 17:30:10
GPS 32.0 50.66315710544586 10.735423564910889 0.0 2010.08.07 17:30:14
GPS 32.0 50.66314101219177 10.735418200492859 0.0 2010.08.07 17:30:17
GPS 32.0 50.66314101219177 10.735418200492859 0.0 2010.08.07 17:30:20
GPS 24.0 50.66313564777374 10.735418200492859 0.5 2010.08.07 17:30:24
GPS 32.0 50.663098096847534 10.735573768615723 0.0 2010.08.07 17:30:28
GPS 32.0 50.663065910339355 10.735611319541931 0.0 2010.08.07 17:30:31

然后我在 2 分钟内没有收到任何更新。

17:32

GPS 32.0 50.661821365356445 10.737022161483765 1.0 2010.08.07 17:32:39
GPS 16.0 50.66170871257782 10.737043619155884 1.8200275 2010.08.07 17:32:45
GPS 24.0 50.661579966545105 10.737027525901794 1.25 2010.08.07 17:32:50
GPS 16.0 50.66150486469269 10.73712408542633 1.0 2010.08.07 17:32:55
GPS 12.0 50.661579966545105 10.73715090751648 0.9013878 2010.08.07 17:33:01
GPS 24.0 50.66139221191406 10.737038254737854 1.5811388 2010.08.07 17:33:06
GPS 16.0 50.66141366958618 10.737301111221313 0.70710677 2010.08.07 17:33:12
GPS 16.0 50.66141366958618 10.737301111221313 0.70710677 2010.08.07 17:33:12
GPS 24.0 50.661311745643616 10.737070441246033 1.118034 2010.08.07 17:33:16
GPS 16.0 50.66122591495514 10.737177729606628 1.118034 2010.08.07 17:33:22
GPS 12.0 50.66124200820923 10.737220644950867 1.3462912 2010.08.07 17:33:26
GPS 12.0 50.661311745643616 10.737268924713135 3.6055512 2010.08.07 17:33:25

以此类推...然后在 2 分钟后的 17:35 进行另一组更新。

这是标准行为吗?我原以为每 2 分钟只能获得一个一个位置,而它给我位置更新的时间跨度似乎相当随机。理想情况下,我宁愿只获得一个位置...有没有办法做到这一点?

最佳答案

来自 requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener) 的文档,关于 minTime 参数:

“通知的最小时间间隔,以毫秒为单位。此字段仅用作节省电量的提示,位置更新之间的实际时间可能大于或小于此值。”

所以你的问题的答案是,是的,这是标准行为,不,你不能改变它。

如果这对您来说是个问题,您可以在特定时间未过去时忽略对回调方法的调用。

关于android - LocationManager 过于频繁地调用 onLocationChanged?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3449676/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com