如何检测用户何时终止应用程序 - Swift

Eri*_*ric 6 ios appdelegate swift uiscenedelegate

不知道为什么这对我来说如此具有挑战性,但是我如何检测用户何时终止应用程序?因为据我所知,Apple 提供了许多在应用程序关闭时可能会或可能不会被调用的函数。

func applicationWillTerminate(_ application: UIApplication):在(大多数)应用程序终止时调用,但不适用于支持后台执行的应用程序。

func sceneDidEnterBackground(_ scene: UIScene):当场景进入后台时调用,但无法区分应用程序进入后台与完全终止。

func sceneDidDisconnect(_ scene: UIScene):我确认如果用户直接终止应用程序,则会调用此函数,但如果将应用程序放在后台然后终止,则不会调用它。

// 编辑:所以我意识到上面的方法(sceneDidDisconnect)确实是我正在寻找的函数。我之前认为在上面描述的后一种情况下它没有被调用,但实际上,它被调用了。另请参阅(即将)接受的答案。

是否有一个函数在每次用户终止应用程序时都会被调用???

Eri*_*ric 4

func sceneDidDisconnect(_ scene: UIScene)最终成为我正在寻找的功能。每当用户手动“终止”应用程序时就会调用它......

...尽管正如 @dfd 评论的那样

“在 iOS 中,通常是操作系统出于各种原因(不一定是用户)终止应用程序。”