iOS扩展 - 检测“扩展状态更改”(背景/前景)

时间:2014-10-06 18:08:17

标签: ios ios8 ios8-extension ios8-share-extension

我为iOS8实施了一个共享扩展。该服务使用OAuth进行身份验证。我用于扩展程序的登录信息与容器应用程序共享。

问题是:

当我在扩展程序中时,应用程序切换到容器应用程序并注销,然后应用程序切换回包含扩展程序的主机应用程序 - 如何检测到扩展程序刚刚重新出现?扩展程序依赖于容器应用程序和扩展程序之间的共享数据库中存在的某些信息,但是,当应用程序注销时,该数据将被删除。

我已尝试注册各种“应用通知”,例如UIApplicationDidBecomeActiveNotification。但是,正如预期的那样,这些不会被要求扩展。

如何检测扩展程序的状态何时发生变化,以便在重新出现时使我的扩展程序更加强大?

2 个答案:

答案 0 :(得分:1)

NSExtensionContext.h

iOS 8.2添加了许多用于扩展程序的通知:

NSExtensionHostDidBecomeActiveNotification
NSExtensionHostDidEnterBackgroundNotification
NSExtensionHostWillEnterForegroundNotification
NSExtensionHostWillResignActiveNotification

答案 1 :(得分:0)

每次重新输入扩展程序时,都应调用主视图控制器类的viewDidAppear:animated:方法。当您即将离开时,应该调用viewWillDisappear:animated: