【问题标题】:Keeping the app in background mode for continuos location updates将应用程序保持在后台模式以持续更新位置
【发布时间】:2013-09-26 09:03:37
【问题描述】:

我的项目正在使用 CLLocationManager 对象,通过以下方式接收更新: locationManager:didUpdateToLocations:

即使我的应用在后台,我也想要这些更新。因此,在 info.plist 中,我将“必需的后台模式”列表设置为应用程序寄存器以进行位置更新。

但我的测试表明它在后台状态下没有收到更新。

但是,我不确定我对背景状态/暂停状态的理解是否正确。 这就是我认为它的工作原理:

After the home button is pressed, the app enters background mode for 5 seconds, 
and then enter suspended state.

我想这就是它不起作用的原因。但是如果将 info.plist 设置为 ""app registers for location updates" 并不能阻止应用程序达到挂起状态,那么我该如何实现呢?

按主页按钮和按锁定按钮有什么区别(如果有)?我的意思是在国家层面。

我已阅读本指南的相关部分:http://www.raywenderlich.com/29948/backgrounding-for-ios

我还是 IOS 新手,所以我可能忽略了一些东西。

【问题讨论】:

    标签: ios ios-background-mode


    【解决方案1】:

    首先,你学习过Location and Maps Programming Guide中的“在后台获取位置事件”吗?

    你检查过backgroundRefreshStatus吗?是否允许这个应用按照它在后台运行?

    pausesLocationUpdatesAutomatically 的值是多少?

    您要求的准确度是多少?您的移动是否足以在该精度上产生变化?

    你打电话给startUpdatingLocation了吗?

    这是 iOS 6 还是 7?如果是 iOS 7,请务必观看 Session 204:“What's New with Multitasking?”发生了一些变化,iOS 现在在关闭应用方面比以前更加积极。

    【讨论】:

    • 我刚刚读过,谢谢。我不熟悉 backgroundRefreshStatus。 pausesLocationsUpdatesAutomatically 仍然是默认值 YES。我正在使用可能的最佳精度,并且我以步行速度移动。 startUpdatingLocations 在输入主页按钮时调用。这是从 iOS 6 开始的。我会去看那个视频。使用我的应用程序时,我会走一条路线,每 30-50 米将位置放入一个数组中。稍后我想知道我何时接近这些位置(比如 10 m),这是我需要应用程序更新位置的地方,即使在后台也是如此。
    • 您是否将您的应用与 Regions 示例进行了比较,该示例与您描述的内容相似? developer.apple.com/library/ios/samplecode/Regions/Introduction/…。如果pausesLocationUpdatesAutomaticallyYES,那么您使用的配置可能会导致暂停(以步行速度移动可能会导致暂停)。
    • 我会试试的。感谢您的帮助!
    猜你喜欢
    • 2014-03-10
    • 1970-01-01
    • 2018-03-11
    • 2020-02-06
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多