当我收到connectNotification时,我会收到附件,检查协议并获取流.使用流我设置委托,在RunLoop上安排,然后打开
目前,当我进入背景时,我把它全部撕下来.我退出了我所做的一切并释放了所有物品.
我也在didDisconnect上做了这个拆解.
在进入时,我并不总是得到didConnect,所以我走了connectedAccessory列表并检查适当的设备.
– = – = – = –
EA演示设置并删除视图上的会话,因此我们不会看到是否存在背景持久性.
EA演示代码似乎建议您可以拆除并返回,只要设备本身没有断开连接.
然而,当iOS设备已经睡眠或将应用程序置于后台并且设备将停止确认数据时,会话和设备有时似乎进入状态,或者更糟糕的是将停止将数据从流中拉出到流填充的点起来.
问题:使用后台时,除非我实际收到didDisconnect通知,否则我不应该拆除活动的会话/附件.有了这个,我假设Session和Accessory结构(也许是流)将在后台生存?
解决方法
Cannot use accessory. Only one accessory can be in use at a time.
现在似乎没有太多关注应用程序进入后台时配件会发生什么.我已经确信,正确的行为是在附件断开连接上释放EASession实例.但我不认为进入后台的应用程序有资格作为附件被断开连接.如果您记录配件的connectedID值,则没有什么可去的,您会注意到它们不会因为切换到背景而返回前景而改变.我怀疑连接的EAAccessory实例列表不会刷新,除非EAAccessoryManager被通知附件的更改(连接/断开连接).
我一直试图拆除并重新创建EASession实例,但这已经失败了.我现在要尝试在整个背景/前景转换过程中保持EASession的位置.我唯一担心的是我的应用程序在后台时不会收到EAAccessoryDidDisconnectNotification和EAAccessoryDidConnectNotification通知.