如果应用程序在后台运行,如何获取当前位置的纬度和经度?
Posted
技术标签:
【中文标题】如果应用程序在后台运行,如何获取当前位置的纬度和经度?【英文标题】:How to get current location latitude and longitude if application running in Background? 【发布时间】:2012-12-07 09:54:45 【问题描述】:我正在与 CLLocation 经理合作,
我已经实现了startUpdatingLocation
方法来获取当前位置的纬度和经度。
如果应用程序在前台运行,我会得到当前位置的纬度和经度,但是当应用程序在后台运行时,它就不起作用了。
如果应用程序在后台运行,请建议我如何获得当前位置的纬度和经度。
【问题讨论】:
一句警告。这对您的电池寿命非常不利,因此请确保您没有经常或准确地获得该位置。如果用户认为他们离开了您的应用程序,但发现他们的电池很快耗尽,他们将不会高兴。祝你好运。 【参考方案1】:我刚刚从这个链接的 *** 中找到了答案:-
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中指定位置后台模式。
【讨论】:
以上是关于如果应用程序在后台运行,如何获取当前位置的纬度和经度?的主要内容,如果未能解决你的问题,请参考以下文章