设备内存不足时是否可以阻止应用程序终止?

时间:2014-04-16 05:06:27

标签: ios objective-c

iOS设备使用虚拟内存和分页。由于页面的可用性受到各种因素的限制,例如打开的应用程序的数量,不同应用程序的分配等。当应用程序的分配率超过页面被释放的速率时,应用程序将终止。由其他应用程序。因此,操作系统要求应用程序释放内存。无法释放内存导致崩溃/终止。

我的问题:是否可以阻止在低设备内存上终止应用程序?

4 个答案:

答案 0 :(得分:1)

不,您无法阻止应用终止。

正如其他人所注意到的,iOS会在内存不足的情况下向您发出警告,如果可能的话,您可以释放一些内存(可以帮助解决此问题的一个很好的课程是NSCache,很少有人知道:它就像一个NSMutableDictionary,可以在内存不足时释放内容。)

但如果这还不够,最终操作系统别无选择,会杀死你的应用。 iOS首先开始在后台杀死应用程序(已经应该已经保存了它们的状态),并且只有在没有其他选择的情况下,前景中的应用程序才会被杀死:在这种情况下,您几乎总是会遇到编程错误(如内存泄漏)。

答案 1 :(得分:0)

在视图控制器中正确使用- (void)didReceiveMemoryWarning,您可以帮助防止它,因为该方法应该在应用程序终止之前触发。

答案 2 :(得分:0)

是的,当内存不足时会出现这种方法:

-(void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}

被调用。你可以在这里处理情况。

答案 3 :(得分:0)

每个视图控制器都会收到低内存警告。请尝试以下任何一种方法

1.在视图控制器上覆盖方法 - (void)didReceiveMemoryWarning

2.您可以为UIApplicationDidReceiveMemoryWarningNotificationnotification注册相应的课程此通知

注意:      应用程序仅在主runloop中收到低内存警告。如果在低内存应用程序时主要的runloop忙将终止而不接收警告。