【问题标题】:Problem in getting location updates periodically定期获取位置更新的问题
【发布时间】:2011-03-17 07:47:14
【问题描述】:

我正在使用位置管理器来获取位置更新。我使用了 Location Manager 的 RequestLocationUpdates(provider,timeinmilliseconds,distanceinmeters,listener)。

我什么时候提供 30 秒的最小延迟来获取下一个位置更新,我假设它应该休息 30 秒来请求新的位置更新。但是我观察到,它没有发生。

我也试过指定最小距离,但还是没有达到我的预期。

我想要的是每 10 分钟或定期移动 100 米后获取位置更新。但我不想使用任何 Timer 线程或进行任何计算来确保我已经移动了 100 米的距离。

是否可以仅使用位置管理器获得此东西?

任何帮助将不胜感激。

提前致谢。

【问题讨论】:

  • 您能否更具体地说明“但我观察到的情况,它没有发生。”的意思?
  • 你在用地图吗??你能粘贴你的代码吗
  • @WarrenFaith :“但我观察到,它没有发生。”这意味着我在指定的时间间隔后没有得到更新。相反,我得到了持续的更新。

标签: android geolocation


【解决方案1】:

我什么时候提供 30 秒的最小延迟来获取下一个位置更新,我假设它应该休息 30 秒以请求新的位置更新。

这是一个有缺陷的假设。

但我观察到的,并没有发生。

正确。您指定的时间段只是一个提示。您指定的距离应用作过滤器。

我想要的是每 10 分钟或定期移动 100 米后获取位置更新。

好的。

但我不想使用任何 Timer 线程或进行任何计算以确保我已经移动了 100 米的距离。

在 10 分钟过去后,您将需要一些东西来通知您。

是否可以仅使用位置管理器来获得这个东西?

不,抱歉。

【讨论】:

  • 好的,现在我明白了,我必须进行一些手动计算才能在每 100 米后获取位置更新。(为了在定期的时间间隔后获取位置更新,我可以使用计时器线程,对吧?)。但同时我想尽可能地节省电池,并且仍然希望在每 100 米后获得更新。实现这一目标的最佳方法是什么?
  • @AndoAiron:“现在我清楚地知道,我必须进行一些手动计算才能在每 100 米后更新位置”——不,只需指定时间 0 和距离的100。 “而且为了在周期性的时间间隔后获取位置更新,我可以使用计时器线程,对吧?” ——你用了一些东西。 “某物”是什么取决于您正在构建的是什么。 “与此同时,我希望尽可能节省电池电量,并且仍然希望在每 100 米后获得更新。” -- 这些是相互矛盾的目标。
  • @AndoAiron:“实现这一目标的最佳方法是什么?” ——只有一种方法可以实现。使用100 米过滤器和0 毫秒过滤器注册位置更新。这将使 GPS 始终处于开启状态,从而耗尽电池电量。使用一些计时机制来确保,如果您在 10 分钟内没有收到任何位置信息,请致电getLastKnownLocation()。要使所有这些工作,您需要使用WakeLockandroid:keepScreenOn,进一步耗尽电池电量。或者,重新设计您的应用。
猜你喜欢
  • 1970-01-01
  • 2019-02-03
  • 2018-04-14
  • 1970-01-01
  • 2016-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多