requestLocationUpdates minTime参数用途



我正在创建一个应用程序(用于教育目的),该应用程序每30分钟记录一次用户的位置,并使用户能够查看地图上的所有位置。我不希望更新频率超过30分钟,但确实如此。

这就是我对requestLocationUpdates:的称呼

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,  30 * 60 * 1000,  0, pe);

现在,文件清楚地表明:

位置更新之间的运行时间永远不会小于minTime

但我确实在SO上看到了一些不同的答案(例如,这个答案)。

我似乎随时都能从GPS上得到更新。GPS图标永远不会关闭,更新速率将大于1次更新/秒。所以我有两个问题:

  1. minTime参数没有达到它的目的,甚至不是一个提示(是的,30分钟更新率的提示会导致超过一秒钟的更新…)。那么它该怎么做呢
  2. 还有别的办法吗?我不想一直启用GPS,因为它会消耗我的电池太快。也许我可以安排每30分钟重复一次的警报,并拨打requestSingleUpdate

minTime参数不能实现它的目的,甚至不能作为提示(是的,30分钟更新率的提示会导致超过一秒钟的更新…)。那么它该怎么办呢?

从Jellybean开始,设备必须遵守minTime参数,因此它(现在)确实有目的。

还有其他方法吗?我不想一直启用GPS,因为它会消耗我的电池太快。也许我可以安排警报每30分钟重复一次,然后调用requestSingleUpdate?

是,使用处理程序每30分钟请求一次requestSingleUpdate()更新。

我在前面的一个问题中已经解决了这个问题,请告诉我答案中的代码是否有帮助,如果你有任何问题,它没有解决。

第二个参数,以米为单位的最小距离差设置为零,它会导致不断更新。首选在计时器+处理程序中使用requestSingleUpdate,以分钟为单位。

最新更新