EAAccessory / EASession在后台拆卸

使用苹果的EADemo作为基础我试图了解背景对EAA饰品的影响。

当我收到connectNotification时,我得到附件,检查协议并获取stream。 随着stream我设置委托,安排RunLoop,并打开

目前当我进入背景时,我把这一切都撕下来。 我退出了我所做的一切并释放所有对象。

我也在didDisconnect上做了这个拆解。

进入时,我并不总是得到一个didConnect,所以我走连接的附件列表,并检查适当的设备。

– = – = – = –

EA Demo在视图上设置并删除会话,因此我们不会看到是否存在后台持久性。

EA演示代码似乎暗示只要设备本身没有断开连接,您就可以拆卸并重新开机。

然而,会话和设备有时似乎进入一个状态,当iOS设备睡觉或把应用程序放到后台,设备将停止确认数据或更糟的是将停止从stream中提取数据,直到stream填充向上。


问题:在使用后台处理时,除非实际发生了didDisconnect通知,否则不应拆除活动的会话/附件。 有了这个,我认为会议和配件结构(也许是stream)将在后台生存?

我对外部附件框架的经验是,它的初始devise很差,就稳健性而言。 直到iOS 4.0,尝试连接到多个附件将产生此错误消息:

Cannot use accessory. Only one accessory can be in use at a time. 

现在看来,应用程序进入后台后,配件会发生什么变化呢? 我确信EASession实例的正确行为是在附件断开连接时释放的。 但我不认为一个应用程序进入后台资格作为一个配件被断开。 如果您logging附件的connectedID值,则不会有太多变化,您将注意到,只是切换到背景并返回到前景,它们不会改变。 我怀疑没有刷新连接EAAccessory实例的列表,除非通知EAAccessoryManager更改(连接/断开连接)附件。

我一直在试图拆除并重新创buildEASession实例,这是失败的。 我现在要试着在整个后台/前台转换过程中离开EASession。 我的一个担心是,我的应用程序将不会在后台接收EAAccessoryDidDisconnectNotification和EAAccessoryDidConnectNotification通知。