IOS如何管理后台应用的内存?
Posted
技术标签:
【中文标题】IOS如何管理后台应用的内存?【英文标题】:How does IOS manage memory of backgrounded apps? 【发布时间】:2018-10-28 14:55:06 【问题描述】:我有一个 ios 应用,在测试期间似乎可以正常工作,直到...
该应用程序已在后台运行了很长一段时间,例如 24 小时...同时在其他应用程序(视频、音频、位置...电池电量低...大量内存)中发生了大量活动正在使用)。
然后,当我将我的应用程序带回前台时,它会出现故障,例如没有音频……然后在片刻后崩溃。
我知道这不是最好的描述,但它只发生过一次,我并没有要求任何人准确地告诉我问题出在哪里。
我真正想知道的是:
IOS 是否对后台应用程序执行任何操作,例如从内存中丢弃它们可能需要的对象?我认为如果它确实这样做了,那么它会在下次恢复时重新启动应用程序,而不是尝试恢复不可恢复的应用程序。
谢谢!
【问题讨论】:
【参考方案1】:如果内存不足,系统可能认为有必要释放一些内存,并希望您通过实现UIApplicationDelegate
方法applicationDidReceiveMemoryWarning 和UIViewController
方法didReceiveMemoryWarning 来处理这种情况。
这些方法的文档没有提到当这些方法被调用时系统在幕后做了什么(只是你应该释放尽可能多的内存,否则你的应用程序可能会被终止),但 this blog post 声称系统可能会破坏内部对象,例如图形上下文或内部存储。
【讨论】:
以上是关于IOS如何管理后台应用的内存?的主要内容,如果未能解决你的问题,请参考以下文章
android系统下, 如何确定一个切换到后台的应用是被系统杀死的
iOS开发者后台添加了新的UDID,如何更新自动管理签名证书的设备描述文件(Provisioning Profiles)?