是否建议使用differenct侦听器实现LocationManager.NETWORK_PROVIDER和LocationManager.GPS_PROVIDER,然后取消注册侦听器locationManager.removeUpdates(locationListener)?
因为GPS_PROVIDER需要花费大量时间来返回值,有时甚至不会回拨?
另外,我们可以有一个locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);在postDelayed的处理程序中,以避免在没有任何回调的情况下发生死锁?
任何人的帮助?
提前致谢!!!
BR, Ĵ
答案 0 :(得分:1)
hm afaik locationManager.getLastKnownLocation立即返回,所以你不应该看到任何死锁?
如果您确实需要管理自己的LocationListeners,建议先注册一个Network-One和两个GPS-one。使用network-Listener接收第一个位置(粗略)。配置一个GPS位置监听器以接收所有GPS更新。一旦位置准确无误,切换到托管的GPS位置监听器,每隔x秒和x米差异仅接收更新。有关更多示例,请参阅http://developer.android.com/guide/topics/location/obtaining-user-location.html。
如果要在地图上显示位置,请尝试MyLocationOverlay。它为你做了所有这些。
答案 1 :(得分:0)
理想情况下,这个问题不再有效,因为Google最终发布了更新版本的位置监听器,可以更有效地处理这个问题。 链接如下: http://developer.android.com/google/play-services/location.html