如何知道 iOS 会终止我的应用程序扩展

How to know that iOS is going to kill my app extension

我在使用 ReplayKit Broadcast Extension 播放我的屏幕时遇到了一些问题。

我相信 iOS 在某些情况下会杀死它(例如,当我有时锁定屏幕时);我的 Broadcast Extension 没有收到通知,也没有机会自行清理,导致我的应用程序出现问题。

iOS 是否以某种方式通知应用程序扩展它将被杀死,类似于通过 UIApplicationWillTerminateNotification 通知应用程序的方式?在我的测试中,如果从应用程序扩展本身观察到回调,则该回调不会触发。

或者,有没有办法从应用程序中知道应用程序扩展已被杀死?

我仔细阅读了文档后找不到这样的回调,我认为它不存在。

通过 NSNotificationCenter.addObserver 订阅 UIScreenCapturedDidChangeNotification,可以在主机应用程序中收到广播扩展不再 运行 的通知。如果触发回调时没有录屏(可以用[UIScreen mainScreen].isCaptured查看),Broadcast Extension不再是运行.

但是,这种情况发生在 广播扩展被终止之后,因此它可能不适合所有用途。不过,这是我能找到的最好的。