Android:getLastKnownLocation已过期 – 如何强制位置刷新?

我在用着

myLocation = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 

在我的应用程序启动时检索当前位置。

正如Android文档所述,此位置可能是“过时的”,因为该方法返回上次使用GPS时的位置。

如何从GPS 主动请求当前位置? 我考虑使用LocationListener ,但这可能有点过分,因为我只需要一次位置(在我的应用程序的开头)。

有任何想法吗?

您最初的直觉是正确的 – 您需要使用LocationListener来请求更新。 鉴于您只需要一个位置,您可以在第一个值返回后取消注册LocationListener。

但在实践中,听一点时间可能是明智之举。 基于位置的服务(特别是GPS)在首次获得修复时会有一种“跳跃”的倾向。 您最好的选择是倾听一定的时间或一定数量的更新,或者直到达到一定的准确度(位置监听器将返回返回位置的准确性)。