【问题标题】:Is it possible to instantiate two LocationManager objects?是否可以实例化两个 LocationManager 对象?
【发布时间】:2011-12-31 00:34:26
【问题描述】:

我希望对 requestLocationUpdates() 的调用有两个单独的回调,每个回调监视不同的时间间隔(时间之一,距离之一)。这可能吗?或者我可以使用一个 LocationManager 实例并在其上调用 requestLocationUpdates() 两次,声明一个单独的对象来实现 onLocationChanged() 作为它的最后一个 arg/param?

【问题讨论】:

  • 如果从不使用 LocationManager 我会说使用 requestLocationUpdates(..) 注册两个 LocationListener 应该不是不可能的,因为有一个清理方法 removeUpdates(LocationListener) 可以删除它们。至于两次使用相同的 LocationListener 实现,我会说不要这样做。

标签: android android-location


【解决方案1】:

是的,您可以注册两次。例如,如果您想为多个提供者注册,您甚至可以每次都使用相同的侦听器对象。

您只需为每个侦听器“删除更新”一次。所以如果你注册了同一个监听器两次,你只需要调用一次removeUpdates。

但是,如果您在不同的时间间隔进行注册,则两个侦听器仍可能会获得所有更新。接口不保证更新频率,传递的参数只是提示。它甚至可能因手机而异 - 在某些手机上,每个听众都可以在请求的频率上获得更新,而在另一部手机上,两个听众都可以获得所有更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-07
    • 1970-01-01
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-09
    相关资源
    最近更新 更多