ios - 终止后再次加载 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")
}
解决方案
据我了解,
didFinishLaunchingWithOptions
只有在第一次加载和任何更新之后才会被调用。
那么你的理解是错误的。每次应用启动时都会调用它。
终止后第二次,第三次加载时会调用哪个?
那将是didFinishLaunchingWithOptions
。
但是,让我们准确区分“负载”的含义。我一直在谈论从头开始应用程序启动时会发生什么。但也有可能应用程序只是进入后台(因此用户可以使用另一个应用程序)然后回到前面。在这种情况下,应用程序不会“加载”;它从来没有“卸载”过,所以它只是从中断的地方开始。在这种情况下,您将得到applicationDidBecomeActive
— 除了 iOS 13 原生应用程序,其中相应的事件被发送到场景委托。
但是,您的问题标题说应用程序在终止后“加载” 。在那种情况下,是的,didFinishLaunchingWithOptions
被称为。
推荐阅读
- amazon-web-services - AWS - 如何让我的资源对整个组织可见?
- windows - Windows Toast 通知,COM 不工作
- c++ - 如何将值传递给可变参数模板函数,该函数将值转发到通过复制接收值的函数?
- javascript - 启用深色主题时如何防止网站闪烁为白色主题
- ios - UICollectionViewCompositionLayout 与包含固定比例 UIImageView 的自动调整单元格
- c# - 如何将 cmd 行参数传递给已发布的 ClickOnce .NET Framework 控制台应用程序
- arrays - 此结构数组中最后一项的意义
- html - 当您将鼠标悬停在图像的不同部分时如何使不同的抽认卡出现
- c# - Xamarin 表单 - 通知服务
- xslt - 如果元素的内容匹配,则使用 XSLT 将 XML 文件拆分为多个文件