gpt4 book ai didi

ios - 后台期间的 EAAccessory/EASession 拆卸

转载 作者:可可西里 更新时间:2023-11-01 03:18:18 31 4
gpt4 key购买 nike

使用 Apple 的 EADemo 作为基础,我试图了解背景对 EAAccessories 的影响。

当我收到 connectNotification 时,我会获取附件、检查协议(protocol)并获取流。使用流,我设置委托(delegate),在 RunLoop 上安排,然后打开

目前,当我进入后台时,我会把这一切都拆掉。我撤消我所做的一切并释放所有对象。

我还在 didDisconnect 上进行了拆解。

进入后,我并不总是得到 didConnect,所以我遍历 connectedAccessory 列表并检查合适的设备。

-=-=-=-

EA 演示在 View 上设置和拆除 session ,因此我们看不到是否存在后台持久性。

EA 演示代码似乎建议您可以拆卸并返回,只要设备本身没有断开连接即可。

然而,当 iOS 设备休眠或将应用程序置于后台时, session 和设备有时似乎会进入一种状态,并且设备将停止确认数据,或者更糟的是将停止从流中提取数据,以至于流填满。


问题:在使用后台时,除非我确实收到 didDisconnect 通知,否则我是否应该取消事件的 session /附件?有了这个,我假设 Session 和 Accessory 结构(可能还有流)将在后台存活?

最佳答案

我对外部附件框架的体验是,就稳健性而言,它最初的设计很糟糕。在 iOS 4.0 之前,尝试连接多个配件会产生此错误消息:

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

现在似乎没有太多人关注当应用程序进入后台时配件会发生什么。我确信正确的行为是在附件断开连接时释放 EASession 实例。但我认为进入后台的应用程序不符合断开连接的附件条件。如果您记录附件的 connectedID 的值,没有什么可做的,您会注意到它们不会仅仅因为切换到后台和回到前台而改变。我怀疑连接的 EAAccessory 实例列表不会刷新,除非 EAAccessoryManager 收到附件更改(连接/断开连接)的通知。

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

关于ios - 后台期间的 EAAccessory/EASession 拆卸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4326194/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com