Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android LocationManager最佳实施方案?_Android_Implementation_Locationmanager - Fatal编程技术网

Android LocationManager最佳实施方案?

Android LocationManager最佳实施方案?,android,implementation,locationmanager,Android,Implementation,Locationmanager,建议使用不同的侦听器同时实现LocationManager.NETWORK_提供程序和LocationManager.GPS_提供程序,然后注销侦听器LocationManager.RemoveUpdate(locationListener)吗 因为GPS_提供商需要花费大量时间返回值,有时甚至不回电话 此外,我们还可以有一个locationManager.getLastKnownLocation(locationManager.NETWORK_PROVIDER);在处理程序中使用postDel

建议使用不同的侦听器同时实现LocationManager.NETWORK_提供程序和LocationManager.GPS_提供程序,然后注销侦听器LocationManager.RemoveUpdate(locationListener)吗

因为GPS_提供商需要花费大量时间返回值,有时甚至不回电话

此外,我们还可以有一个locationManager.getLastKnownLocation(locationManager.NETWORK_PROVIDER);在处理程序中使用postDelayed来避免死锁,以防没有任何回调

有人帮忙吗

提前感谢

比尔,
J

Hm afaik locationManager.getLastKnown位置会立即返回,所以您不应该看到任何死锁

如果您确实需要管理自己的LocationListeners,建议先注册一个网络和两个GPS。使用网络侦听器接收第一个位置(粗略)。配置一个GPS位置侦听器以接收所有GPS更新。一旦位置准确无误,请切换到托管GPS位置侦听器,该侦听器仅每x秒和x米差接收一次更新。有关更多示例,请参阅


如果要在地图上显示该位置,请尝试MyLocationOverlay。这一切都是为了你。

理想情况下,这个问题不再有效,因为谷歌最终发布了更新版本的位置监听器,可以更有效地解决这个问题。 链接如下:

所谓死锁,我的意思是,如果您请求网络或GPS侦听器不回电话,我应该获取最新已知位置作为备份。有时它也会返回空值。所以这不是一个真正的选择。其次,不,我需要一个不同的目的,没有地图或类似的当前位置。第三,GPS_提供商没有收到回电,这有点奇怪,因此必须依赖网络。谢谢,我改变主意了。这是正确的!!!这将是一个更好的实施。但是,您需要一个具有延迟post的处理程序,以便在15秒的时间段内无法得到任何响应。你可以把它关掉。