gpt4 book ai didi

ios - 有没有办法知道我的 iOS 应用程序被隐私设置更改杀死了?

转载 作者:可可西里 更新时间:2023-11-01 04:02:04 24 4
gpt4 key购买 nike

我的 iOS 应用需要访问图片的权限才能正常运行。

当我发现以下内容时,我正在测试我的应用程序如何响应隐私设置的变化:每次我转到“设置”应用程序并更改我的应用程序的隐私设置(打开或关闭)时,我的应用程序在没有任何警告的情况下被杀死。

我在设备的控制台中找到了这些日志:

Apr  8 15:01:50 iPad Preferences[5924] <Warning>: ########### Quitting application (xxx) in response to privacy settings change.
Apr 8 15:01:50 iPad com.apple.launchd[1] (UIKitApplication:xxx[0xc7cb][6039]) <Notice>: (UIKitApplication:com.edupad.itoochdev[0xc7cb]) Exited: Killed: 9
Apr 8 15:01:50 iPad backboardd[30] <Warning>: Application 'UIKitApplication:xxx[0xc7cb]' exited abnormally with signal 9: Killed: 9

虽然我在我的应用程序委托(delegate)中实现了 applicationWillTerminate:,但它似乎并没有在应用程序被终止之前被调用。

我找不到任何相关文档,说明我应该如何实现才能在我的应用被终止之前获得通知。知道我是否可以解决这个问题吗?

PS 1:我知道我可以实现 applicationDidEnterBackground: 但我想在 (A) 用户快速切换到“设置”应用以更改隐私设置的情况下提供不同的用户体验,或者(B) 用户想要继续前进并且不会在一段时间之前返回到该应用

PS 2:如果您正在测试这类事情,请不要在您的应用程序通过 Xcode 启动时进行测试,否则您会因 sigkill 而崩溃。

最佳答案

通常情况下,如果您希望在应用被终止之前保存状态或清理代码,您需要定义 block beginBackgroundTaskWithExpirationHandler

您可以查看 Apple 的 WWDC 2012 文档,其中讨论了从 iOS6 开始更改隐私设置时会发生什么。简而言之,它表示 beginBackgroundTaskWithExpirationHandler 在发送 SIGKILL 之前被调用,因此您可以在那里处理清理代码。

在 Stack Overflow 上还有另一个类似的讨论。如果有人能找到它并将其链接到此处,将会很有帮助。

关于ios - 有没有办法知道我的 iOS 应用程序被隐私设置更改杀死了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22938450/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com