告诉动作扩展的后台状态

Tell background state of action extension

UIApplication 有方便的 applicationState 属性 允许您查看您的应用程序是否在后台。在行动(和共享)扩展中,使用 UIApplication 是非法的,即使您 在扩展中获得它的实例,它总是报告 applicationState=UIApplicationStateBackground。我也尝试观察 UIApplicationDidEnterBackgroundNotification,它从不触发。

有没有一种方法可以有效判断某个扩展程序是 运行 在处于前台还是后台的应用程序中?

Post iOS 8.2、可以观察到列出的通知here.

NSExtensionHostDidBecomeActiveNotification NSExtensionHostWillResignActiveNotification NSExtensionHostDidEnterBackgroundNotification NSExtensionHostWillEnterForegroundNotification

在注册这些通知之前,请务必检查您是否使用了适当版本的设备,否则您的扩展程序将崩溃,因为它们将是 nil