如何在后台运行应用程序的当前位置经纬度?

时间:2012-12-07 09:54:46

标签: iphone objective-c cocoa-touch ios4

我正在与CLLocation经理合作,

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

如果应用程序正在运行Foreground,我获得了当前位置的经纬度,但是当应用程序在后台运行时它无效。

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

2 个答案:

答案 0 :(得分:1)

我刚刚在此链接中找到了stackoverflow中的答案: -

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

在Apple Developer论坛的帮助下找到了实现此解决方案的解决方案。我做了以下事情:

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

注意:通过在无法正常工作的模拟器中进行测试,确实耗费了一些时间,在手机上正常工作。

答案 1 :(得分:0)

在背景中获取currcnt位置在plist中指定位置背景模式。