【问题标题】:How to get current location latitude and longitude if application running in Background?如果应用程序在后台运行,如何获取当前位置的纬度和经度?
【发布时间】:2012-12-07 09:54:45
【问题描述】:

我正在与 CLLocation 经理合作,

我已经实现了startUpdatingLocation 方法来获取当前位置的纬度和经度。

如果应用程序在前台运行,我会得到当前位置的纬度和经度,但是当应用程序在后台运行时,它就不起作用了。

如果应用程序在后台运行,请建议我如何获得当前位置的纬度和经度。

【问题讨论】:

  • 一句警告。这对您的电池寿命非常不利,因此请确保您没有经常或准确地获得该位置。如果用户认为他们离开了您的应用程序,但发现他们的电池很快耗尽,他们将不会高兴。祝你好运。

标签: iphone objective-c cocoa-touch ios4


【解决方案1】:

我刚刚从这个链接的 stackoverflow 中找到了答案:-

How do I get a background location update every n minutes in my iOS application?

在 Apple 开发者论坛的帮助下找到了实现这一点的解决方案。我做了以下事情:

  • 指定位置背景模式
  • 通过使用UIApplication:beginBackgroundTaskWithExpirationHandler: 在后台使用NSTimer
  • 如果n 小于UIApplication:backgroundTimeRemaining,它确实可以正常工作,如果n 更大,则应在没有剩余时间之前再次启用(和禁用)位置管理器以避免后台任务被杀。这确实有效,因为位置是三种允许的后台执行类型之一。

注意:通过在模拟器中测试它确实浪费了一些时间,它不起作用,在我的手机上可以正常工作。

【讨论】:

    【解决方案2】:

    在后台获取当前位置 在plist中指定位置后台模式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-31
      • 2017-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-22
      • 2012-07-08
      • 1970-01-01
      相关资源
      最近更新 更多