android Google 地图:getLastLocation 与 requestLocationUpdates

android Google maps : getLastLocation vs requestLocationUpdates

我只需要清楚地了解这一点,getLastLocation()方法会给我最后一个已知位置,requestLocationUpdates会在每个时间段给我当前位置。

现在,我正在开发一个简单的应用程序来跟踪将在汽车中的手机。

我的问题是:

1- getLastLocation() 是如何工作的,这个 last known location 会在位置改变时更新吗

2- 哪个更好,使用 getLastLocation() 获取初始位置,然后使用方法 onLocationChanged 更新当前位置或使用 requestLocationUpdates 获取最新位置每 n 秒 ?

所以根据 android 文档 getLastLocation() :-

Returns the best most recent location currently available. If a location is not available, which should happen very rarely, null will be returned. The best accuracy available while respecting the location permissions will be returned. This method provides a simplified way to get location. It is particularly well suited for applications that do not require an accurate location and that do not want to maintain extra logic for location updates.

这是 getLastLocation() 的问题,它不准确,如果它在 cache.I 中没有任何最后已知的位置,它可能 return 为 null 在我的 application.So 要获得准确的位置,您应该使用 requestLocationUpdates() 但根据您的需要定义时间间隔,您希望更新的时间间隔可能很短导致更多的电力使用。

getLastLocation 为您提供在 LocationClient 中的最后一个位置,有时它可能为空,如果您没有安装任何其他使用定位服务的应用程序,那是很少见的大多数手机都安装了 Google 地图或其他一些与位置相关的应用程序。

getLastLocation 仅在您需要一次位置并完成它时有用,但对于位置更新,您应该使用 requestLocationUpdates,并且使用服务时,您的应用程序将始终收到通知,当位置变化。

我希望您使用的是来自播放服务的 FusedLocation Provider,这样您就可以指定您需要多快的位置更新,以检查电池消耗情况和性能。

另请注意,当您使用 requestLocationUpdates 时,只有您会收到任何位置更改更新。