gpt4 book ai didi

android - 使用 LocationClient 定期获取位置的最佳方法?

转载 作者:行者123 更新时间:2023-11-29 21:16:27 28 4
gpt4 key购买 nike

我正在使用 LocationClient 每分钟获取当前位置:

mLocationRequest = LocationRequest.create();
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
mLocationRequest.setInterval(60000);
mLocationRequest.setFastestInterval(60000);
mLocationClient = new LocationClient(this, this, this);
// ... when connected:
mLocationClient.requestLocationUpdates(mLocationRequest, this);

但是我注意到我的 LocationListener 的 onLocationChanged 方法每 60 或 120(或 60 的任何其他倍数)秒(+/- 3 秒)被调用一次。文档说:

This interval is inexact. You may not receive updates at all (if no location sources are available), or you may receive them slower than requested. [...]

所以我知道,间隔不是精确的一分钟。但我认为我会在 60 秒结束后尽快获得当前位置,例如 75 秒后。但似乎如果 LocationClient 无法确定位置,它会在接下来的 60 秒后重试。

这个假设是否正确?

如果是,解决方法是将间隔设置为较低的值,例如 30 秒左右,并在 onLocationChanged 方法中过滤掉所需的位置。但这可能会消耗更多电池电量。

最佳答案

当您调用 mLocationRequest.setFastestInterval(60000); 时,您是在说您每 60 秒不能处理多个调用,因此它在向您发送更新之前等待 60 秒的时间间隔(即使它在下一个 60 秒周期之前 45 秒获得它)- 降低 setFastestInterval 以确保在收到位置更新后快速将它们发送给您。由于实际轮询频率与 setInterval(而不是最快的间隔)相关联,因此增加 setFastestInterval 不应增加电池使用量。

关于android - 使用 LocationClient 定期获取位置的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21317281/

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