首页 > 解决方案 > 终止后再次加载 iPhone 应用程序时会调用什么函数?

问题描述

我一直试图弄清楚当您的应用程序终止时调用哪个函数,然后再次加载。据我了解, didFinishLaunchingWithOptions 仅在第一次加载和任何更新后才被调用。终止后第二次,第三次加载时会调用哪个?

我无法使用打印语句进行测试,因为当您在模拟器中终止时,控制台不再打印任何内容

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    window = UIWindow()
    print("App Launched for the first time")
    return true
}

func applicationWillResignActive(_ application: UIApplication) {
    print("Will Resign Active")
}

func applicationDidBecomeActive(_ application: UIApplication) {
    print("Did Become Active")
}

func applicationDidEnterBackground(_ application: UIApplication) {
    print("App Entered Background")
}

func applicationWillEnterForeground(_ application: UIApplication) {
    print("App Entered Foreground")
}

func applicationWillTerminate(_ application: UIApplication) {
    print("App Terminated")
}

标签: iosswiftxcode

解决方案


据我了解,didFinishLaunchingWithOptions只有在第一次加载和任何更新之后才会被调用。

那么你的理解是错误的。每次应用启动时都会调用它。

终止后第二次,第三次加载时会调用哪个?

那将是didFinishLaunchingWithOptions

但是,让我们准确区分“负载”的含义。我一直在谈论从头开始应用程序启动时会发生什么。但也有可能应用程序只是进入后台(因此用户可以使用另一个应用程序)然后回到前面。在这种情况下,应用程序不会“加载”;它从来没有“卸载”过,所以它只是从中断的地方开始。在这种情况下,您将得到applicationDidBecomeActive— 除了 iOS 13 原生应用程序,其中相应的事件被发送到场景委托

但是,您的问题标题说应用程序在终止后“加载” 。在那种情况下,是的,didFinishLaunchingWithOptions被称为。


推荐阅读