在 iOS 7 中运行的应用程序在后台被杀死
Posted
技术标签:
【中文标题】在 iOS 7 中运行的应用程序在后台被杀死【英文标题】:App be killed in the background running in iOS 7 【发布时间】:2013-12-26 09:56:15 【问题描述】:我的应用使用 CoreBluetooth 连接 BLE 设备,还在 info.plist 中添加了 UIBackgroundModes(值“bluetooth-central”)。当应用程序进入后台时,应用程序可以继续从连接的设备读取 RSSI 值。但是应用程序在几分钟后每次都会在后台被杀死。我使用instruments工具来测试live bytes,总字节数大约12MB。在iphone4s,iphone5,iphone5s中测试app,有这样的问题。所以不知道怎么解决?我的应用程序需要在后台运行很长时间。大家有其他想法吗?
【问题讨论】:
您的应用程序可能会被另一个应用程序杀死,后台模式并不能保证您的应用程序不会被杀死。如果系统要求一些内存,首先它会杀死“其他”,如果它再次需要内存,它也会杀死后台应用程序。你在哪些设备上测试,关闭应用后你在做什么操作? 【参考方案1】:我认为你应该启动一个后台任务。
UIApplication *app = [UIApplication sharedApplication];
UIBackgroundTaskIdentifier taskIdentifier = [app beginBackgroundTaskWithExpirationHandler:^
// Cleanup before closing app
];
【讨论】:
这对于过期任务很有用,而不是完全后台支持模式。以上是关于在 iOS 7 中运行的应用程序在后台被杀死的主要内容,如果未能解决你的问题,请参考以下文章
为啥即使我在后台请求位置更新,我的 iOS 应用程序也会被杀死?