当应用程序检测到隐私设置更改时自动重启

我有一个使用ALAssets框架访问用户照片库的应用程序。 我写了一些代码来检测应用程序是否有权访问照片库,如果没有,我会显示一条警告消息,告诉用户在设置中打开应用程序的位置服务。

问题是,当用户手动更改隐私设置然后重新打开应用程序时,iOS会强制应用程序与SIGKILL崩溃。

我注意到另一个应用程序处理此问题的方式是以某种方式检测隐私设置的更改,并强制应用程序在用户下次打开时重新启动。 有谁知道怎么做到这一点?

你误解了发生的事情。 您的应用程序没有崩溃(尽管如果您使用调试程序运行应用程序,它可能会显示)。

当您切换到“设置”应用程序(并且您的应用程序在后台暂停)并更改隐私设置时,已终止的应用程序将被终止。 当您切换回应用程序时,它会再次启动。 这与您的应用程序因任何其他原因被杀死没有什么不同。

您可以通过恢复以前的状态来编写应用程序来处理此问题。 您谈到的另一个应用程序只是将用户返回到先前的状态。 许多应用都这样做。 它与因隐私变化而被杀无关。 应用程序将在因任何原因被杀死时恢复状态。

您可以使用ALAssetsLibraryauthorizationStatus类方法检查您是否有权访问照片库。 您应该在每次应用“打开”时调用的某种方法中检查此值,并相应地更新您的UI。