IOS如何管理后台应用程序的内存?

时间:2018-05-18 08:10:02

标签: ios memory background crash lifecycle

我有一个IOS应用程序,在测试期间似乎工作正常,直到......

该应用程序已经在后台工作了很长时间,比如说24小时......同时其他应用程序中发生了很多活动(视频,音频,位置......电池耗尽......大量内存被使用)。

然后当我将我的应用程序带回前台时,它会出现故障,例如没有音频......然后在一段时间后崩溃。

我知道这不是最好的描述,但它只发生过一次而且我不是要求任何人告诉我究竟是什么问题。

我真正想知道的是:

IOS是否对背景应用做任何事情,例如从内存中丢弃可能需要的对象?我认为,如果它确实这样做了,那么它会在下次恢复时重新启动应用程序而不是尝试恢复不可恢复的应用程序。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果系统内存不足,系统可能认为有必要释放一些内存,并希望您通过实施UIApplicationDelegate方法applicationDidReceiveMemoryWarningUIViewController方法{来处理这种情况{3}}

这些方法的文档没有提到当调用这些方法时系统在幕后做什么(只是你应该释放尽可能多的内存,否则你的应用可能会被终止),但是{{3}声称系统可能会破坏内部对象,如图形上下文或内部存储。