我正在创建一个应用程序(用于教育目的),每30分钟记录一次用户的位置,并使用户可以查看地图上的所有位置。我不希望更新频率超过30分钟,但它们是。
这就是我致电requestLocationUpdates
的方式:
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 30 * 60 * 1000, 0, pe);
现在,文档清楚地说:
位置更新之间经过的时间永远不会少于minTime
但我确实在这里看到了一些不同的答案(例如This answer)。
似乎只要GPS可用,我就会收到更新。 GPS图标永远不会关闭,更新率大于1更新/秒。所以我在这里有两个问题:
minTime
参数无法实现其目的,甚至不作为提示(是的,提示30分钟更新率会导致更新一秒......)。它做了什么呢?requestSingleUpdate
?答案 0 :(得分:5)
minTime参数不能实现其目的,甚至不作为提示(是的,提示30分钟的更新速率导致超过更新一秒......)。它是做什么的呢?
从Jellybean开始,设备必须遵守minTime
参数,因此它有一个目的(现在)。
还有其他办法吗?我不希望GPS一直启用,因为它会消耗我的电池太快。也许我可以安排每30分钟重复一次的警报,并调用requestSingleUpdate?
是的,请使用处理程序每30分钟requestSingleUpdate()
请求一次更新。
我之前在previous question处理过这个问题,请告诉我该答案中的代码是否有帮助,如果您有任何问题则无法解决。
答案 1 :(得分:1)
第二个参数,以米为单位的最小距离差值设置为零,它会导致不断更新。 更喜欢在计时器+处理程序中使用requestSingleUpdate,在所需的时间段内以分钟为单位。