我很惊讶iOS 5.1没有像我预期的那样管理内存。当设备运行大量应用程序时,似乎iOS不会在后台扼杀内存占用应用程序,但也会向我自己的应用程序发送内存警告。
例如,显示UIImagePicker在两个测试设备上崩溃了应用程序。双击主页键并查杀某些后台应用程序会阻止应用程序收到内存警告并崩溃。
如果iOS不能为我释放内存,我会徘徊,是否可以显示某种警报视图,通知用户内存不足并且某些后台任务必须被杀死?< /强>
我不知道如何处理此类事件 - iOS是否需要时间来清理内存(而应用程序会响应内存警告)?
答案 0 :(得分:5)
此外,Apple不希望您告诉用户存在内存问题;它是你的应用程序必须处理它,而不是用户!因此,当审核小组正在审核您的应用时,如果出现内存警告,那么您的应用也会被拒绝(谣言说他们会发送这些警告来测试您的应用对您的应用的反应)
Soo,总结一下:iOS确实像你想象的那样通过杀死它甚至关闭其他系统守护进程来工作,只有在这种情况发生后你才会收到内存不足的通知。响应这些警告的正确方法是尽可能多地释放内存,从未来可以轻松重新创建的大部分内容开始(例如,如果您的应用显示大量图片但不是所有图片都可见扔掉那些现在看不见的东西)。告诉用户是处理问题的错误方法,Apple不喜欢它,所以尽量解决问题。