1
locationmanager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationlistener);

我知道这行代码应该尽可能频繁地更新设备位置,对吗?具体来说,每 0 毫秒和 0 米(最小)。

好的,“最小值”这个词在这里很关键,但为什么有时位置可能长达 30 多秒都没有更新?我已经计算了一次更新和下一次更新之间的实际时间,而在 WiFi 上,即使我在代码中有 0 和 0 也需要 38 秒。我什至用 1000 毫秒(1 秒)尝试了它,但仍然没有那么频繁地更新。

如何更频繁地进行此更新?为什么会有这样的反应?

谢谢!

4

1 回答 1

2

简短的回答是:你不能(让它更频繁地更新)。

文档表明,如果您将 min_distance 和 min_time 指定为零,您将获得“尽可能频繁的更新”。所以你看到的是“尽可能频繁地”。通常你不会得到更新,除非有什么改变,所以如果你不搬家,你不一定会得到更新。此外,由于您使用的是网络位置而不是 GPS,因此位置的准确性不是那么好,因此您不应该期望经常更新。

此外,每个硬件供应商都以不同的方式实现位置提供程序。所以更新的频率是由硬件供应商的实现决定的。

于 2012-05-07T15:02:04.520 回答