当用户点击应用程序图标上的红色 (-) 按钮时,应用程序强制终止回调
Posted
技术标签:
【中文标题】当用户点击应用程序图标上的红色 (-) 按钮时,应用程序强制终止回调【英文标题】:Application force kill callback when user taps the red (-) button on the app icon 【发布时间】:2014-03-06 12:54:06 【问题描述】:当用户强制终止 ios 应用程序时,我需要在我的应用程序中重置一些数据。但是根据 Apple 的文档发布的 ios SDK 4.0 applicationWillTerminate 回调方法不会被调用,并且应用程序在没有得到通知的情况下被杀死。因此,如果有人帮助我找到一些解决方案/其他方式来捕捉事件,我将不胜感激。
【问题讨论】:
反过来做。删除application:didFinishLaunchingWithOptions:
上的数据
【参考方案1】:
您应该通过在您的appDelegate
中实施来保持您的状态
- (void)applicationWillResignActive:(UIApplication *)application
当应用程序即将进入后台时调用。
在Apple documentation here了解更多信息
编辑
您无法知道应用程序在后台运行时是由用户终止还是由系统终止。如果您需要清理东西,请在应用程序启动时进行:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
【讨论】:
当应用程序被杀死而不是进入后台时,我需要一个回调。 在这种情况下,您应该在应用重新启动时清理数据。 只有在应用程序的前一个实例被杀死而不是让它从后台恢复到前台或每次启动时,我才需要清理。 didFinishLaunchingWithOptions 仅在应用程序从头开始时调用。您可以在 - (void)applicationWillResignActive:(UIApplication *)application 中设置一个标志(将其保留在 userPreferences 中)以检测应用何时进入后台并在 applicationDidBecomeActive: 中删除标志。如果设置了标志并且你点击了didFinishLaunchingWithOptions,你知道应用程序在后台被终止以上是关于当用户点击应用程序图标上的红色 (-) 按钮时,应用程序强制终止回调的主要内容,如果未能解决你的问题,请参考以下文章
当用户在 Qt 应用程序中单击任务栏/停靠图标时获取事件或通知
SwiftUI 上的按钮点击调用 MKMapView.setRegion