有没有办法知道我的iOS应用程序被隐私设置更改杀死了?
我的iOS应用程序需要访问图片的权限才能正常运行 我在测试我的应用程序如何响应隐私设置的更改时发现以下情况:每次我转到设置应用程序并更改应用程序的隐私设置(打开或关闭),我的应用程序都会在没有任何警告的情况下被终止 我在设备的控制台中找到以下日志:有没有办法知道我的iOS应用程序被隐私设置更改杀死了?,ios,settings,privacy,uiapplicationdelegate,Ios,Settings,Privacy,Uiapplicationdelegate,我的iOS应用程序需要访问图片的权限才能正常运行 我在测试我的应用程序如何响应隐私设置的更改时发现以下情况:每次我转到设置应用程序并更改应用程序的隐私设置(打开或关闭),我的应用程序都会在没有任何警告的情况下被终止 我在设备的控制台中找到以下日志: Apr 8 15:01:50 iPad Preferences[5924] <Warning>: ########### Quitting application (xxx) in response to privacy setting
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
Apr 8 15:01:50 iPad首选项[5924]::#############################。
4月8日15:01:50 iPad com.apple.launchd[1](UIKitApplication:xxx[0xc7cb][6039]):(UIKitApplication:com.edupad.itoochdev[0xc7cb])退出:终止:9
Apr 8 15:01:50 iPad BackboardDD[30]:应用程序“UIKitApplication:xxx[0xc7cb]”异常退出,信号9:Killed:9
尽管我在我的应用程序委托中实现了applicationWillTerminate:
,但在应用程序被终止之前,它似乎没有被调用
我找不到任何相关文档,说明在我的应用程序被终止之前,我应该实现什么来获取通知。我能解决这个问题吗
PS 1:我知道我可以实现applicationidenterbackground:
,但我想在以下情况下提供不同的用户体验:(a)用户只是快速切换到设置应用程序以更改隐私设置,或者(B)用户想要继续,并且在一段时间内不会回到应用程序
PS 2:如果你在测试这类东西,不要通过Xcode启动你的应用程序,否则你会因sigkill崩溃 通常,如果您希望在应用程序被终止之前保存状态或清理代码,则需要定义块
beginBackgroundTaskWithExpirationHandler
你可以看看苹果公司的WWDC 2012文档,其中谈到了当隐私设置从iOS6开始更改时会发生什么。简言之,它表示在发送SIGKILL之前会调用beginBackgroundTaskWithExpirationHandler
,以便您可以在那里处理清理代码
还有另一个关于堆栈溢出的讨论。如果有人能找到它并将其链接到此处,这将非常有帮助。您必须始终预料到,您的应用程序在切换到后台后可能会被杀死。即使用户快速进入隐私设置,他们也可以记住其他内容,进入不同的应用程序,等等。因此,你唯一的可能就是检查在进入后台和前台之间花费了多少时间。这在iOS 10中似乎不再适用