我正在尝试限制我的程序每10秒进行一次位置更新,而不是不断更新,以减少电池消耗。当我在室内调试并且信号很弱(即GPS图标闪烁)时这很好用,但如果手机得到正确的修复(即GPS图标是静态的),更新间隔会增加到大约一秒钟。
我知道代码mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, updateInterval*1000, 0, this);
不会强制GPS在给定的时间间隔内完全更新,但在我看来,它不应该依赖于信号的强度并且波动那么多。
有什么想法吗?
更新:见评论
答案 0 :(得分:3)
我怀疑GPS收音机的工作方式是它连接到GPS卫星还是不是。当它连接时,Android SDK会按照GPS硬件提供的频率向您发送更新。当它没有完整的GPS连接时,它将根据您的要求回退到发送AGPS更新。
如果您只想每10秒更新一次,则应将最后收到的Location
时间值保存在收听者中,并在收到新的Location
时检查旧值的时间;如果它过于频繁(或做一些更聪明的事情,如检查准确性和替换旧值等),请忽略它。
答案 1 :(得分:0)
也许它的工作速度较慢,因为你正在调试,但不是因为你的信号很弱!尝试在室内使用断开连接的调试器进行测试......