我正在 objective-c 中开发一个 IOS 应用程序,它显示来自蓝牙 BLE 的心率和相应的图形。如果应用程序在前台运行,则一切正常,没有任何问题。
但如果应用程序进入后台模式,BLE 测量仍会继续(我正在使用“使用蓝牙 LE 配件”),但它会在几分钟或几秒钟后被操作系统杀死,并显示消息“iPhone 上的应用程序意外退出--> 来自调试器的消息:由于信号 9 而终止。
当我在 iPhone 上看到应用程序时,我无法找出为什么这种情况只发生在后台模式而不是前台?
前台或后台的 CPU 和内存使用率相同,分别约为 130% 和 16 MB。
应用程序在 2:40 后被杀死
最佳答案
“所有在前台完成的事情”都是在应用程序处于后台模式并且应用程序正在使用示例“使用蓝牙 LE 配件” 时完成的!如果 CPU 使用率过高 iOS 会以“因信号 9 而终止”终止应用程序 不仅在内存使用率过高时! (我认为,Apple 文档中缺少这一事实)。
为了防止应用程序在后台被杀死,当应用程序处于后台模式时,停止使用高 CPU 资源,例如渲染图像!
关于IOS 蓝牙应用程序 "Terminated due to signal 9"仅在后台模式下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29583277/