这应该花这么久吗?

时间:2016-04-13 00:29:13

标签: java android database string performance

我正在使用LocationManager's requestLocationUpdates()来获取用户打开应用时的坐标,获取坐标所需的时间比其他应用更长。

获取位置需要一段时间,但是我的应用仍在加载并等待位置(我使用LocationManager's requestLocationUpdates())的时间比其他应用要长得多。

以下是我启动应用程序时通知面板的屏幕截图:

enter image description here

当我打开我的应用时,请注意Finding Location...,因为我的应用会在应用打开后立即拨打LocationManager's requestLocationUpdates()

这是问题的关键:

即使此通知在我面前,如果我导航到谷歌地图等应用,它也可以在几秒钟内确定我的确切位置。那是因为谷歌地图使用getLastLocation吗?

为什么其他应用程序能够比我的更快地获取位置?

1 个答案:

答案 0 :(得分:0)

因此,有两种方法可以获得精确定位(gps)和粗略(网络)。 Google Play服务提供了第三种方法,但它使用了这两种方法的组合。 GPS需要很长时间 - 它必须与2打左右的卫星中的7个进行通信才能首次获得位置。网络速度很快,只需要1个网络请求(如果缓存了数据,则需要更少)。

许多应用程序将同时使用两者,使用网络获得快速答案,然后在获取数据时改进GPS。我知道地图会这样做。这将为您提供快速不准确的答案,并允许您稍后提高准确性。

你可以使用getLastKnownLoacation更快,但你必须能够处理它返回null。通常网络足够快。