当应用程序进入后台时关闭它。

3
当应用程序进入后台时,我需要完全关闭应用程序。目前,当我的应用程序进入后台并重新调用它时,它会显示我在进入后台之前正在使用的视图。
我这样做是为了释放内存。
如何通过编程实现这一点?

当应用程序从后台返回时,我的UITableView滚动非常缓慢(其中包含图像)。因此,我想在它进入后台时完全关闭应用程序。 - shajem
表视图中有许多图片,这就是为什么滚动需要很长时间的原因。 - shajem
如果您正确释放内存,就不需要这个了。 - HelmiB
@HelmiB 我正在使用 ARC,所以无法释放内存。 - shajem
@shajem,那你为什么需要首先释放内存呢? - HelmiB
显示剩余5条评论
3个回答

4
在info.plist中添加键UIApplicationExitsOnSuspend,将其值设置为YES
更多信息请参见这里

我这样做是为了节省内存,因为表格视图(其中有大量图片)从后台返回时需要加载时间,会减慢滚动速度。所以这种方法可行吗?(我需要你的意见) - shajem
你需要缓存图片。请查看 https://github.com/rs/SDWebImage ,这样就不会一遍又一遍地加载图片了。除此之外,图片的大小和像素是多少? - Shubhank
40-70 KB。高度和宽度因用户而异,用户可以上传任何他喜欢的高度或宽度。 - shajem
我认为你正在使用同步请求,这就是为什么每次显示单元格时你的UI都会被阻塞,而且在图像下载之前表视图会等待。使用我上面给出链接的库,它将解决问题,因为它可以缓存并执行异步请求。 - Shubhank
我正在使用SDWebimage。这是用于缓存和显示图像的代码吗? // 在这里,我们使用新提供的setImageWithURL:方法来加载网络图像 [cell.imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"] placeholderImage:[UIImage imageNamed:@"placeholder.png"]]; 有点困惑 :S - shajem
是的,这就是代码。你可以展示一个占位图像,直到图像下载完成。根据我的经验,如果可能的话,应该提供一个占位图像,否则,用户必须来回滚动当前单元格才能更新图像。如果提供了占位符,图像一旦完成就会立即更新。 - Shubhank

3

前往您的配置文件(如plist文件)并添加以下标记: UIApplicationExitsOnSuspend,将其设置为true


我这样做是为了节省内存,因为表格视图(其中有大量图片)从后台返回时需要加载时间,并且会减慢滚动速度。所以这种方法可行吗?(我需要你的意见) - shajem

2
不要因为内存问题而阻止您的应用程序进行多任务处理。您应该优化您的代码并纠正这些问题。
查看这个指南和它提到的方法,它们将允许您知道您的应用程序是否进入了后台,以便您可以释放一些内存。

@shajem:实际上,其他两个答案都对你的问题是正确的,但是Sch也给了你一个非常好的建议。 - Rok Jarc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接