我希望每分钟都能得到我的坐标,即使用户没有移动。所以我使用requestLocationUpdates和以下参数:
locMgr.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
60000, // minTime in ms
0, // minDistance in meters
PosljiLokacijo.this);
但是当我在我的HTC Hero(2.1 Android)上测试并且我没有移动时,onLocationChanged()从未被调用过。如果我将minDistance更改为1,那么我会在开始时获得一些更新但在此之后,它们会以非常不规则的间隔出现。
我应该如何选择这两个参数(minTime和minDistance)来每分钟接收坐标?
答案 0 :(得分:1)
根据文件:
minTime通知的最小时间间隔,以毫秒为单位。此字段仅用作节省电量的提示,位置更新之间的实际时间可能大于或小于此值。
我看到你想做的唯一方法是将minTime设置为0并抛出过于频繁的值。您仍然无法保证您可以随时获得更新,并为您的应用做好电池杀手的准备。
答案 1 :(得分:1)
我不认为“minTime”或“minDistance”在这种情况下会有所帮助,除非:将最后一个位置保存到变量中并每分钟输出一次。让locationManager覆盖这些变量,一分钟后,位置变化变得可见。这样就不需要等待更新,因为变量总是保持实际位置。
您也可以从locationManager检索位置,并在一分钟后(或您想要的间隔时间)再次请求该位置,而不使用requestLocationUpdates
。
e.g。看一下Timer
设置重复调用获取位置的方法:
http://developer.android.com/reference/java/util/Timer.html
这样你也可以省电,因为系统不会一直在寻找更新。