45

我有一个使用 iPhone 联系人的应用程序。在 iOS 6 中,第一次尝试时会提示用户进行联系人访问。此时,用户可以点击“允许”或“不允许”。问题是当用户将应用程序设置为后台时,然后导航到设置->隐私->联系人以切换我的应用程序的联系人隐私设置。切换后,我可以在控制台上看到我的应用程序:

应用程序 'UIKitApplication:com.myApp' 异常退出,信号 9:已终止:9

我在 Apple 的文档中找不到这方面的任何信息。有谁知道防止这种情况的方法?这是设计好的吗?或者这是苹果的错误?

4

2 回答 2

76

操作系统发送一个不是崩溃的 SIGKILL - Apple 关于 iOS6 隐私的会话说:

  • 如果权限更改,应用程序将退出。
  • 如果已注册,则调用后台任务到期处理程序
  • 然后 iOS 会终止该应用程序。

WWDC 2012 会议视频:iOS 和 OS X 中的隐私支持

过期处理程序:beginBackgroundTaskWithExpirationHandler

我看不出有什么办法。

于 2012-10-01T06:00:50.573 回答
2

在测试 beginBackgroundTaskWithExpirationHandler 之后,我可以说在更改权限设置后不会调用过期处理程序块,如 Apple 演示文稿中所述。

于 2015-09-02T16:26:06.760 回答