ios 7中的重大位置更改事件-后台服务调用

Posted

技术标签:

【中文标题】ios 7中的重大位置更改事件-后台服务调用【英文标题】:Significant blocation change event in ios7 - Background service call 【发布时间】:2013-09-05 15:10:14 【问题描述】:

我正在我的应用中使用重要的位置服务。 如果我的应用程序被系统杀死或用户强制关闭,使用重大位置更改服务事件,我将在 ios 6 中将位置数据发送到我的服务器。 在 iOS6 中,我的应用程序也会在强制关闭后将数据发送到服务器。 但在 iOS 7 中,我没有收到这种重要的位置更改事件。

【问题讨论】:

请注意,iOS 7 和 Xcode 5 仍处于保密协议下,这限制了您在官方 Apple 开发者论坛之外谈论它们。这可能就是您的问题得不到任何答案的原因。 【参考方案1】:

由于 iOS 7 SDK 不再受 NDA 保护,为了完整起见,我将在此处发布答案。正如这里的答案所述:Monitoring regions but location icon disappears when app is killed 如果用户在应用切换器中杀死了应用程序,iOS 7 不允许在后台进行重大位置更改

更多关于Apple forums的信息,其中还包含苹果代表的以下回复:

如果用户在应用切换器中向上滑动,则操作系统将不会启动 该应用程序,除非用户明确告知这样做。所以不,SLC 会 不会启动应用程序,也不会静默通知。唯一的 此时将启动应用程序的是用户点击 图标。这里的意图是用户已经表达了他们的选择 出于任何原因不再运行该应用程序,因此我们很荣幸 那。在这种情况下,你真的无能为力。这 下次用户启动应用程序时,您可以让他们知道其中一些 数据可能会丢失,尽管你真的无法判断是否 是否缺少数据(即您可能已被操作系统杀死 在后台,用户可能没有移动,因此没有 触发任何 SLC 通知)。我的建议是收集 您可以在操作系统的策略中获取的数据以及用户是否拥有 手动杀死该应用程序然后尊重该愿望并且不做任何事情。 无论如何,如果发生这种变化,请随时提交错误报告 行为最终会给您带来问题或(尤其是)混乱 为您的用户。

【讨论】:

那么,有没有办法在应用被杀死时获取用户位置? 没有。用户是设备的管理员。 我已经问a question请看一下

以上是关于ios 7中的重大位置更改事件-后台服务调用的主要内容,如果未能解决你的问题,请参考以下文章

应用程序在后台或暂停时的位置更新

应用在后台时下载网络数据

如何在后台开始录制 iOS 音频会话?

Phonegap iOS 在后台使用地理位置

使用*标准*定位服务的后台 iOS 应用程序是不是会在设备重新启动时重新启动?

位置更新在后台停止 - iOS