我正在使用LocationManager's
requestLocationUpdates()
来获取用户打开应用时的坐标,获取坐标所需的时间比其他应用更长。
获取位置需要一段时间,但是我的应用仍在加载并等待位置(我使用LocationManager's
requestLocationUpdates()
)的时间比其他应用要长得多。
以下是我启动应用程序时通知面板的屏幕截图:
当我打开我的应用时,请注意Finding Location...
,因为我的应用会在应用打开后立即拨打LocationManager's
requestLocationUpdates()
。
即使此通知在我面前,如果我导航到谷歌地图等应用,它也可以在几秒钟内确定我的确切位置。那是因为谷歌地图使用getLastLocation
吗?
为什么其他应用程序能够比我的更快地获取位置?
答案 0 :(得分:0)
因此,有两种方法可以获得精确定位(gps)和粗略(网络)。 Google Play服务提供了第三种方法,但它使用了这两种方法的组合。 GPS需要很长时间 - 它必须与2打左右的卫星中的7个进行通信才能首次获得位置。网络速度很快,只需要1个网络请求(如果缓存了数据,则需要更少)。
许多应用程序将同时使用两者,使用网络获得快速答案,然后在获取数据时改进GPS。我知道地图会这样做。这将为您提供快速不准确的答案,并允许您稍后提高准确性。
你可以使用getLastKnownLoacation更快,但你必须能够处理它返回null。通常网络足够快。