requestLocationUpdates 与位置侦听器
Posted
技术标签:
【中文标题】requestLocationUpdates 与位置侦听器【英文标题】:requestLocationUpdates vs Location Listener 【发布时间】:2013-05-02 21:28:33 【问题描述】:使用带有 requestLocationUpdates() 的位置管理器对象与仅使用 LocationListener 有什么区别?他们都做同样的事情并以同样的方式工作吗?一个比另一个有什么优势?
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_provicer, 0, 0, new LocationListener())
//all appropriate methods here
VS.
LocationListener myLocationListener = New LocationListener()
// all appropriate methods here
【问题讨论】:
当我说技术上的错误时,它还不足以投票反对:) 【参考方案1】:您的问题在技术上不正确。 LocationManager 通过 requestLocationUpdates 注册一个监听器。当您的位置经理意识到发生超时或距离旅行时,侦听器是回调。在您的情况下,将立即调用位置侦听器。
但请注意,使用 0,0 参数的位置管理器请求更新不是已知是即时的。有时可能会有延迟。
所以你关于有什么区别的问题是不正确的。这就像问Print this
和System.out.println()
有什么区别:)
【讨论】:
好的,所以它不是一个或一个类型的东西。我使用我的 LocationManager 对象来 requestlocationUpdates() 然后我使用 LocationListener 处理这些更新? 是的,你是对的。但是 LocationListener 是一个接口,所以你需要实现它。并将此对象引用提供给 requestLocationUpdates。正确。 感谢您解决此问题。没有意识到位置列表器处理位置变化的重要性。还认为位置侦听器在需要使用位置管理器时单独使用很有用。以上是关于requestLocationUpdates 与位置侦听器的主要内容,如果未能解决你的问题,请参考以下文章
requestLocationUpdates() 在单独的线程中
requestLocationUpdates() 花费太多时间或根本不起作用