1

在应用程序使用 CLLocationManager 类中的 startMonitoringSignificantLocationChanges 方法终止后,我的应用程序也使用核心位置。

我的应用程序在 iOS 5 和 6 的方法中使用位置键启动: - (BOOL) application:application didFinishLaunchingWithOptions:launchOptions; 在 AppDelegate 类中,一切正常。

但在 iOS-7 测试版中,应用程序在位置发生重大变化后不会使用位置键启动。

有人遇到过这个问题吗?

我在模拟器和设备上尝试过。

谢谢您的帮助。

4

1 回答 1

6

当应用程序被用户从应用程序切换器终止时,我的应用程序中遇到了同样的问题。但如果它因内存不足或其他原因被操作系统终止,它会使用位置键启动。

不幸的是,这是 iOS7 的预期结果。我从他们的一位传教士那里得到了苹果官方的回应:

如果用户在应用程序切换器中向上滑动,则操作系统不会启动应用程序,除非用户明确告知这样做。所以不,SLC 不会启动应用程序,也不会发出静默通知。此时唯一会启动应用程序的是用户点击图标。这里的意图是用户已经表达了他们出于任何原因不再运行该应用程序的选择,因此我们对此表示尊重。在这种情况下,你真的无能为力。下次用户启动应用程序时,您可以让他们知道某些数据可能丢失,尽管您确实无法判断是否丢失了数据(即您可能已在后台被操作系统杀死,用户可能未移动,因此不会触发任何 SLC 通知)。我的建议是在操作系统的政策范围内收集您可以收集的数据,如果用户手动杀死了该应用程序,那么尊重这个愿望并且不做任何事情。如果这种行为变化最终给您带来问题或(特别是)给您的用户带来困惑,请务必提交错误报告。

附上 Apple DEV 论坛的链接: https ://devforums.apple.com/message/882691#882691

于 2013-09-08T12:12:37.510 回答