UIApplication
具有方便的applicationState
属性,可让您查看应用程序是否在后台。在操作(和共享)扩展程序中,使用UIApplication
是非法的,即使您 在扩展程序中获取其实例,它也始终报告applicationState=UIApplicationStateBackground
。我也试过观察UIApplicationDidEnterBackgroundNotification
,它永远不会发射。
有没有办法有效地判断扩展是否在前台或后台的应用中运行?
答案 0 :(得分:7)
发布iOS 8.2后,您可以观察列出的here通知。
NSExtensionHostDidBecomeActiveNotification
NSExtensionHostWillResignActiveNotification
NSExtensionHostDidEnterBackgroundNotification
NSExtensionHostWillEnterForegroundNotification
请务必在注册这些通知之前检查您是否使用了相应版本的设备,否则您的扩展程序会崩溃,因为它们会nil
。