首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >背景中的EAAccessory/EASession拆卸

背景中的EAAccessory/EASession拆卸
EN

Stack Overflow用户
提问于 2010-12-01 15:53:41
回答 1查看 5.5K关注 0票数 8

以苹果的EADemo为基础,我试图了解背景背景对EAAccessories的影响。

当我收到一个connectNotification,我得到附件,检查协议和流。使用流设置委托,在RunLoop上调度,然后打开

现在,当我进入后台时,我会把这一切都撕掉。我放弃了我所做的一切并释放了所有的对象。

我还在didDisconnect上做了这个解压。

在输入时,我并不总是得到一个didConnect,所以我遍历connectedAccessory列表并检查是否有合适的设备。

-=-=-=

EA演示在视图上设置并删除会话,因此我们看不到是否存在背景持久性。

EA演示代码似乎表明,只要设备本身没有断开连接,您就可以拆除并返回。

然而,当iOS设备睡觉或将应用程序放到后台时,会话和设备有时似乎会进入状态,设备将停止接收数据,或者更糟的是停止将数据从流中提取到流被填满的程度。

问题:当我使用回退时,我不应该拆除一个会话/附件是活动的,除非我实际上得到了一个didDisconnect通知。有了这个,我假设会话和附属结构(也许是流)将在后台存活?

EN

回答 1

Stack Overflow用户

发布于 2010-12-10 17:01:30

我在外部附件框架方面的经验是,它最初设计得很糟糕,在健壮性方面。在iOS 4.0之前,尝试连接到多个附件将产生以下错误消息:

代码语言:javascript
复制
Cannot use accessory. Only one accessory can be in use at a time.

现在看来,当应用程序进入后台时,对附件的影响似乎还没有得到足够的关注。我已经确信,正确的行为是在附件断开时释放EASession实例。但我不认为进入后台的应用程序可以被视为被断开连接的附件。如果您记录了配件的connectedID值,您将注意到它们做的是而不是更改,只是因为切换到后台并返回到前台。我怀疑连接的EAAccessory实例列表不会刷新,除非通知EAAccessoryManager附件的更改(连接/断开)。

我一直试图删除和重新创建EASession实例,但这失败了。现在,我将尝试在整个背景/前景转换过程中保留EASession。我唯一担心的是,我的应用程序在后台不会接收EAAccessoryDidDisconnectNotification和EAAccessoryDidConnectNotification通知。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4326194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档