当我使用 Photos.app 时,我的 iOS 应用程序因内存压力而终止

Posted

技术标签:

【中文标题】当我使用 Photos.app 时,我的 iOS 应用程序因内存压力而终止【英文标题】:My iOS App Terminated due to Memory Pressure when I am using Photos.app 【发布时间】:2013-12-26 05:44:05 【问题描述】:

我在 ios 7.0.1 和 iPod Touch 第 5 代设备上运行我的应用程序。当我按照以下步骤操作时,我的应用程序在 Xcode 5 上退出并出现以下错误,而控制台中没有任何错误

App quit Unexpectedly Terminated due to Memory Pressure

步骤: 1) 使用 Xcode 5 运行我的应用程序。登录然后转到主页

2) 点击主页按钮,让我的应用进入后台(我可以看到我的应用在后台)

3) 从 iOS 启动内置的照片应用程序。点击 1 或 2 张图片

4) 拍摄1-2张照片后,App因内存压力意外退出

我没有在我的应用程序中做任何事情。当我检查 CPU 使用率时,它的 0% & Memeory used = 15.2 MB 除了我的应用程序之外,没有其他应用程序在后台运行。

有人可以帮忙吗?谢谢

我不明白为什么会这样。如果我不使用 Photos.app 应用程序运行顺利。

【问题讨论】:

当您的应用程序没有执行任何操作时,iOS 会在用户执行资源密集型操作时立即终止它。如果您的应用程序正在做某事,那么您的应用程序被杀死的可能性就较小。但它仍然可能发生。 【参考方案1】:

对此,您无能为力,也不应该采取任何措施。您的应用程序不再处于前台,并且前台应用程序(照片)正在请求更多内存。为此,iOS 将终止在后台运行的所有应用程序。无论您的应用程序使用多少内存,只要前台应用程序需要更多内存,iOS 就会终止后台应用程序。

一旦您的应用进入后台,您就可以期待它随时被终止。提升用户体验,可以关注Enabling State Preservation and Restoration in Your App。这在理论上允许您的应用程序在用户返回时从中断的地方开始。

【讨论】:

记住 iOS 不会随机选择要终止的后台应用程序。它基于这些应用程序目前正在做什么。如果应用程序正在做某事(例如:接收 GPS 更新)并且只使用 15MB,它可能不会被杀死,除非前台应用程序真的需要 100% 的资源。 没错,但 OP 说他是唯一运行的应用程序。而且照片应用程序有点猪... @jrturton 感谢您的回答。我在我的应用程序中实现了空闲超时。我无法使用状态恢复,因为每当我的应用程序启动时,出于安全原因,我需要根据项目要求要求登录。现在发生的事情是我的应用程序由于照片应用程序和下次应用程序要求登录而被杀死。所以测试人员认为空闲超时工作不正常。 您可以随时存储用户进入后台的时间,并在下次启动时间足够快时自动登录。取决于应用程序其余部分的性质。

以上是关于当我使用 Photos.app 时,我的 iOS 应用程序因内存压力而终止的主要内容,如果未能解决你的问题,请参考以下文章

当我的 UIScrollView 缩放图像时,如何使框架正确居中?

用于移动safari的html5网络应用程序,用于从Photos.app上传图像?

Apple Photos:从 Photos.app 获取“人脸相册”列表

UICollectionView - 复制 Photos.app 功能

从 Photos.app 获取最后一张图片?

在 PhotoKit 中删除:您可以跳过“最近删除”吗?