我目前正在处理作为外部附件连接到 IOS 设备的智能卡读卡器。当应用程序进入后台并在那里停留几秒钟(比如说 10-15 秒)时,iOS 会断开阅读器的连接,以免耗尽电池电量。这将通知NSNotificationCenter
阅读器 ( EAAccessory
) 已断开连接。当应用程序进入前台时,通常需要一些时间才能重新连接阅读器。我可以使用以下方法处理这些通知:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(EAaccessoryConnect) name:EAAccessoryDidConnectNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(EAaccessoryDisConnect) name:EAAccessoryDidDisconnectNotification object:nil];
问题是,有时当应用程序在后台运行较长时间(超过 20 分钟)时,EAAccessoryDidDisconnectNotification
通知中心显然会发布多个EAAccessoryDidConnectNotification
. 当我收到时,EAAccessoryDidDisconnectNotification
我必须充分处理它并留出一些时间直到EAAccessoryDidConnectNotification
收到。但是,当另一个EAAccessoryDidDisconnectNotification
出现时,它会扰乱我的设置,并且用户会从应用程序中注销。
因此,我的问题是 - 是否可以在应用程序进入前台后检查哪些通知已发送到 NSNotificationCenter 而应用程序处于后台,并删除多个相同类型的通知 - 只留下一个通知类型。还是您建议我实施任何其他解决方案来解决此问题?