IOS 蓝牙应用程序 "Terminated due to signal 9" 仅在后台模式下

IOS bluetooth app "Terminated due to signal 9" ONLY IN BACKGROUND MODE

我正在 objective c 中开发一个 IOS 应用程序,它显示来自蓝牙 BLE 的心率和相应的图形。如果应用程序在前台运行,一切正常,没有任何问题。

但是,如果应用程序进入后台模式,BLE 测量仍会继续(我正在使用 "Uses Bluetooth LE accessories"),但它会在几分钟或几秒钟后被 OS 杀死,并显示消息“The iPhone 上的应用程序意外退出 --> 来自调试器的消息:由于信号 9 而终止。

当我在 iPhone 上看到应用程序时,我无法找出为什么这种情况只发生在后台模式而不是前台?

CPU 和内存使用在前台或后台是相同的,大约是 130% 和 16 MB。

应用程序在 2:40

后被终止

"All things which are done in the foreground" 当应用程序处于后台模式并且应用程序正在使用示例 "Uses Bluetooth LE accessories" 时完成!如果 CPU 使用率过高 iOS 会用 "Terminated due to signal 9" 终止应用程序 不仅在内存使用率过高时(我认为,Apple 文档中缺少这个事实)。

为了防止应用程序在后台被杀死,当应用程序处于后台模式时,停止使用东西 做高CPU,比如渲染图像!