iOS设备使用虚拟内存和分页。由于页面的可用性受到各种因素的限制,例如打开的应用程序的数量,不同应用程序的分配等。当应用程序的分配率超过页面被释放的速率时,应用程序将终止。由其他应用程序。因此,操作系统要求应用程序释放内存。无法释放内存导致崩溃/终止。
我的问题:是否可以阻止在低设备内存上终止应用程序?
答案 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忙将终止而不接收警告。