Android LocationManager最佳实施方案?
建议使用不同的侦听器同时实现LocationManager.NETWORK_提供程序和LocationManager.GPS_提供程序,然后注销侦听器LocationManager.RemoveUpdate(locationListener)吗 因为GPS_提供商需要花费大量时间返回值,有时甚至不回电话 此外,我们还可以有一个locationManager.getLastKnownLocation(locationManager.NETWORK_PROVIDER);在处理程序中使用postDelayed来避免死锁,以防没有任何回调 有人帮忙吗 提前感谢 比尔,Android LocationManager最佳实施方案?,android,implementation,locationmanager,Android,Implementation,Locationmanager,建议使用不同的侦听器同时实现LocationManager.NETWORK_提供程序和LocationManager.GPS_提供程序,然后注销侦听器LocationManager.RemoveUpdate(locationListener)吗 因为GPS_提供商需要花费大量时间返回值,有时甚至不回电话 此外,我们还可以有一个locationManager.getLastKnownLocation(locationManager.NETWORK_PROVIDER);在处理程序中使用postDel
JHm afaik locationManager.getLastKnown位置会立即返回,所以您不应该看到任何死锁 如果您确实需要管理自己的LocationListeners,建议先注册一个网络和两个GPS。使用网络侦听器接收第一个位置(粗略)。配置一个GPS位置侦听器以接收所有GPS更新。一旦位置准确无误,请切换到托管GPS位置侦听器,该侦听器仅每x秒和x米差接收一次更新。有关更多示例,请参阅
如果要在地图上显示该位置,请尝试MyLocationOverlay。这一切都是为了你。理想情况下,这个问题不再有效,因为谷歌最终发布了更新版本的位置监听器,可以更有效地解决这个问题。 链接如下:
所谓死锁,我的意思是,如果您请求网络或GPS侦听器不回电话,我应该获取最新已知位置作为备份。有时它也会返回空值。所以这不是一个真正的选择。其次,不,我需要一个不同的目的,没有地图或类似的当前位置。第三,GPS_提供商没有收到回电,这有点奇怪,因此必须依赖网络。谢谢,我改变主意了。这是正确的!!!这将是一个更好的实施。但是,您需要一个具有延迟post的处理程序,以便在15秒的时间段内无法得到任何响应。你可以把它关掉。