objective-c - applicationWillTerminate 不会在强制退出 iOS 应用程序时被调用

标签 objective-c ios xcode

是否有人对 applicationWillTerminate 在 iOS 5/6 中何时/在什么条件下被调用有任何见解?

我有一些逻辑我想在应用程序终止时执行(而不是移动到后台),例如,如果用户通过双击主页按钮导航到屏幕底部的应用程序栏,然后强制退出应用程序。

当我尝试在测试设备上执行此操作时,applicationWillTerminate 似乎没有被调用。这是有原因的吗?

我的 B 计划是将该逻辑与某个持久对象相关联,例如单例对象或在应用程序退出时自动销毁的静态对象。

有什么建议吗?

谢谢

最佳答案

您是否阅读了 applicationWillTerminate: 的文档? ,

它说,

对于不支持后台执行或链接到 iOS 3.x 或更早版本的应用程序,此方法总是在用户退出应用程序时调用。对于支持后台执行的应用程序,当用户退出应用程序时通常不会调用此方法,因为在这种情况下应用程序只是移至后台。 但是,在应用程序在后台运行(未挂起)并且系统出于某种原因需要终止它的情况下,可能会调用此方法

那里提到了一个“也许”。可能这回答了你的问题。因此,当您退出应用程序时,没有必要调用它。可能您可能必须使用 UIApplicationExitsOnSuspend 来禁用多任务处理,然后它可能会在后台运行时被调用。但这又取决于您的应用程序要求。如果您不能禁用多任务处理,您可能会考虑在 applicationDidEnterBackground 方法中这样做。我不确定是否有任何其他委托(delegate)方法可以帮助识别强制退出。

关于objective-c - applicationWillTerminate 不会在强制退出 iOS 应用程序时被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13386505/

相关文章:

iphone - 无法使用 UILongTouchGestureRecognizer 从 MKMapView 获取坐标

ios - 如何从图像中删除纯背景颜色

objective-c - 核心数据: concurency conflict between save and fetch

ios - scrollViewWillBeginDragging : Not getting called in UICollectionview

ios - 带有 UIView 的 SwiftUI 按钮

ios - CollectionView 在滚动时突出显示不正确的单元格

iphone - OpenGL + 相机 View (iPhone)

xcode - 没有找到合适的申请记录。验证应用程序时

ios - 更新 UIImageView 会导致内存泄漏

ios - 切换音乐应用后应用不再接收来自锁屏的控制事件