【问题标题】:Android: Location ManagerAndroid:位置管理器
【发布时间】:2013-07-26 04:28:57
【问题描述】:

一个接一个地运行不同标准的位置更新

如何使用“requestforlocationupdates”针对不同的条件逐个运行位置更新。

我面临的问题是,当我为三个条件运行 locationupdates 时,代码开始执行第一个条件,然后似乎启动了一个单独的线程,它等待位置更改并与侦听器一起工作。因此,在我什至删除第一个条件的更新之前,我的第二个条件已经开始在主线程中执行,并再次使用新条件请求位置更新。结果我总是只能运行最后一个条件。

【问题讨论】:

  • 这些标准究竟是什么?贴一些代码
  • 我所说的 Criteria 是指标准类的不同参数——比如 Accuracy_Fine; Accuracy_caorse 等。在我的活动的 oncreate 方法中,我有一个按钮的 onclicklistener,它检查哪些复选框(每个复选框代表一个标准)已被选中。然后一个接一个地请求每个标准的位置更新:Short Snipped 将是:

标签: android locationmanager locationlistener


【解决方案1】:

LocationManager.getBestProvider() 函数为您返回可用的最佳提供程序。如果没有符合您条件的提供者,则会放宽直到找到提供者。您可以将标准定义为上边界。

如果您想使用不同的标准,您可以在LocationListener.onStatusChanged() 回调中检查实际使用的提供程序。如果您不喜欢该提供商(因为它是网络并且您想要 GPS f.e.),那么您可以开始对提供商提出新的请求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-18
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    相关资源
    最近更新 更多