将iOS应用程序发送到后台会导致整个应用程序延迟



我有一个应用程序,它使用一个计时器,每 .01 秒运行一次"更新"函数。该函数分析环境声音,并在听到正在收听的某些音调时执行操作。

该应用程序运行良好,直到我将其发送到后台(即点击主页按钮或双击(。

当我重新打开应用程序时,它的工作方式完全相同,只是延迟了大约 1-2 秒。当我的应用程序听到它正在侦听的声音时,它会在日志中打印出一条消息,但它仍然总是听到它,它不会打印大约两秒钟的延迟。

我观察到的事情:

  1. 计时器仍然正常运行,一切似乎都完美无缺,就好像手机正在经历的硬件与实际应用程序正在运行之间存在延迟一样。

  2. 在我将其发送到后台模式之前和之后,CPU 都保持在 40-50% 之间。

我的应用程序对时间非常敏感,所以如果它延迟半秒,这是一个交易破坏者。

这个问题与我使用的AudioKit框架有关。每当你离开应用程序时,你必须运行try? AudioKit.stop()然后当你回来时,你可以再次try AudioKit.start(),否则所有的音频内容都会延迟。

最新更新