Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法知道我的iOS应用程序被隐私设置更改杀死了?_Ios_Settings_Privacy_Uiapplicationdelegate - Fatal编程技术网

有没有办法知道我的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

我的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
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中似乎不再适用