2

是否建议使用不同的侦听器同时实现 LocationManager.NETWORK_PROVIDER 和 LocationManager.GPS_PROVIDER 然后注销侦听器 locationManager.removeUpdates(locationListener) ?

因为 GPS_PROVIDER 需要大量时间来返回值,有时甚至不回电?

此外,我们可以有一个 locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 在带有 postDelayed 的处理程序中以避免死锁,以防万一没有任何回调?

任何人的帮助?

提前致谢!!!

BR,J

4

2 回答 2

1

嗯,afaik locationManager.getLastKnownLocation 立即返回,所以您应该看不到任何死锁?

如果您确实需要管理自己的 LocationListeners,建议先注册一个 Network-One 和两个 GPS-one。使用网络监听器接收第一个位置(粗略)。配置一个 GPS-Location-listener 以接收所有 GPS-Updates。一旦位置准确,切换到托管 GPS 位置侦听器,它仅每 x 秒和 x 米 diff 接收更新。有关更多示例,请参阅http://developer.android.com/guide/topics/location/obtaining-user-location.html

如果您想在地图上显示位置,请尝试 MyLocationOverlay。它为你做这一切。

于 2011-03-06T16:23:28.573 回答
0

理想情况下,这个问题将不再有效,因为谷歌最终发布了更新版本的位置监听器,它将更有效地处理这个问题。以下相同的链接:http: //developer.android.com/google/play-services/location.html

于 2013-05-29T13:14:38.723 回答