我正在创建一个应用程序(用于教育目的),该应用程序每30分钟记录一次用户的位置,并使用户能够查看地图上的所有位置。我不希望更新频率超过30分钟,但确实如此。
这就是我对requestLocationUpdates
:的称呼
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 30 * 60 * 1000, 0, pe);
现在,文件清楚地表明:
位置更新之间的运行时间永远不会小于minTime
但我确实在SO上看到了一些不同的答案(例如,这个答案)。
我似乎随时都能从GPS上得到更新。GPS图标永远不会关闭,更新速率将大于1次更新/秒。所以我有两个问题:
minTime
参数没有达到它的目的,甚至不是一个提示(是的,30分钟更新率的提示会导致超过一秒钟的更新…)。那么它该怎么做呢- 还有别的办法吗?我不想一直启用GPS,因为它会消耗我的电池太快。也许我可以安排每30分钟重复一次的警报,并拨打
requestSingleUpdate
minTime参数不能实现它的目的,甚至不能作为提示(是的,30分钟更新率的提示会导致超过一秒钟的更新…)。那么它该怎么办呢?
从Jellybean开始,设备必须遵守minTime
参数,因此它(现在)确实有目的。
还有其他方法吗?我不想一直启用GPS,因为它会消耗我的电池太快。也许我可以安排警报每30分钟重复一次,然后调用requestSingleUpdate?
是,使用处理程序每30分钟请求一次requestSingleUpdate()
更新。
我在前面的一个问题中已经解决了这个问题,请告诉我答案中的代码是否有帮助,如果你有任何问题,它没有解决。
第二个参数,以米为单位的最小距离差设置为零,它会导致不断更新。首选在计时器+处理程序中使用requestSingleUpdate,以分钟为单位。