gpt4 book ai didi

ios - 如何检测操作系统强制关闭应用程序

转载 作者:行者123 更新时间:2023-11-28 17:56:14 24 4
gpt4 key购买 nike

我正在为 >=iOS8 设备开发一个 iOS 应用程序。我的应用程序占用大量内存,这成为一个问题,因为应用程序可能会崩溃。我有 CrashLoggers,可以在下次启动时报告应用程序崩溃。但是,在某些情况下,应用程序可能会消耗比平常更高的内存,并且操作系统可能会终止它。有没有我可以用来检测操作系统强制应用程序终止的委托(delegate)?

我尝试了 [AppDelegate applicationWillTerminate:][AppDelegate applicationDidReceiveMemoryWarning:] 但它们在大多数情况下都会给我误报。问题是这不是异常,而是操作系统发出的系统信号,用于终止我试图在事件范围内检测的应用程序。

我是一名新程序员。如果我对事情的理解不正确或者我做出了不切实际的假设,请告诉我。

我已阅读以下链接: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplicationDelegate_Protocol/index.html#//apple_ref/occ/intfm/UIApplicationDelegate/applicationWillTerminate :

Is there any method in appDelegate which is called when application crashes?

我明白预防问题胜于治疗。但在这里我试图检测是否会出现问题。这不像应用程序总是崩溃。可能存在一些极端情况或用户使用非常旧的设备(如 iPhone 4s/iPad Air 1),应用可能会(可能)遇到问题。因此,我需要一个围绕此的日志记录机制。

应用程序的运行时间在最坏情况下约为 120MB,虽然很高,但远在过高的范围内。虽然应用程序有很多功能,但应用程序中的图像处理很难在保持质量的同时执行,也很难在内存方面进行分析(峰值取决于大小、图像质量、照明等)。所以我的应用完全在边界线之内,我正在寻求一种方法来检测应用在用户使用时是否越过此边界。

我完全同意您提出的优化(或修复崩溃)建议,我会尽力优化(或调试)应用。

最佳答案

当应用程序崩溃或被系统杀死时,没有任何信号可以让您有意义地捕捉到。

是什么让您认为 applicationDidReceiveMemoryWarning: 给您错误警告?


收到内存警告然后没有被杀死不是误报。这仅意味着您的应用没有增加足够的内存分配以超过阈值。

当您收到内存警告时,如果需要,请记录,但也会减少内存使用

您怎么知道最大运行时分配占用空间是 120MB?根据设备的不同,现代设备上的可用内存从大约 125MB (iPad 1) 到远超过 1GB(iPad Pro 上更多)不等。

关于ios - 如何检测操作系统强制关闭应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34210271/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com