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

标签 ios bluetooth kill-process

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

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

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

前台或后台的 CPU 和内存使用率相同,分别约为 130% 和 16 MB。

应用程序在 2:40 后被杀死

enter image description here enter image description here

最佳答案

“所有在前台完成的事情”都是在应用程序处于后台模式并且应用程序正在使用示例“使用蓝牙 LE 配件” 时完成的!如果 CPU 使用率过高 iOS 会以“因信号 9 而终止”终止应用程序 不仅在内存使用率过高时! (我认为,Apple 文档中缺少这一事实)。

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

关于IOS 蓝牙应用程序 "Terminated due to signal 9"仅在后台模式下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29583277/

相关文章:

ios - 如何在没有 pathExtension 的情况下在 Swift 的路径中查找文件的文件 UTI

javascript - 如何使用 javascript 杀死 linux child_process.spawn?

c# - 检测到没有响应的线程并终止它?

objective-c - 谷歌加 iOS SDK : how to get logged in user email?

iphone - 隐藏特定 TableView 部分的 TableViewHeaderView

ios - 在 Armv7s、Armv7 和 arm64 中使用 Linphone

android - 找到蓝牙收件箱

android - 蓝牙连接被安全 rfcomm 套接字拒绝(适用于不安全)

android - listenUsingRfcommWithServiceRecord(字符串名称,UUID uuid)不工作

linux - 使用STAT字段S终止所有进程