当我的应用程序在iPhone上的后台运行超过2小时时,我遇到了问题,然后在Xcode中经常出现错误“终止内存压力”。我可以做什么,我的应用程序在后台运行没有问题?这是仪器的截图:
答案 0 :(得分:13)
简单地说,这很可能不是你的错。 iOS低内存杀手(Jetsam名称的一个相当激进的内核线程)使用“优先级带”来维持候选进程在低内存中杀死,并且几乎每个人都是候选者 - 后台进程比前景进程更有可能。 。 (图片来自Jetsam的优先乐队,来自http://newosxbook.com/articles/MemoryPressure.html)
你可以做的是通过响应低内存事件(即实现didReceiveLowMemoryWarning)并卸载任何你不是严格要求的图像/ UIImageViews来获得更多的喘息空间 - 即使你做了一点,它也有帮助你活了下来此外,您没有指出您正在使用哪个UIBackgroundMode - 这可能会有所帮助(它在内核中定义应用程序配置文件,从而稍微调整Jetsam)。