Skip to content

2.5_UIApplication与AppDelegate生命周期

UIApplication 的角色与职责

UIApplication 是每个 iOS 应用的核心,它负责管理应用的生命周期、处理用户事件,并提供应用运行所需的关键服务。你可以把它想象成应用的“大脑”,协调各个组件的工作,确保应用平稳运行。🎉

  • 管理应用的事件循环 (run loop)。
  • 处理应用的启动和关闭。
  • 提供应用级别的配置信息。
  • 管理应用的界面和窗口。

AppDelegate 的重要性

AppDelegate 是一个代理对象,它负责响应 UIApplication 发出的各种事件,例如应用启动、进入后台、回到前台等。你可以把它看作是 UIApplication 的“助手”,帮助它处理各种杂务。

  • 应用启动时,AppDelegate 会收到 application:didFinishLaunchingWithOptions: 消息,你可以在这里进行应用的初始化设置。
  • 当应用进入后台时,AppDelegate 会收到 applicationWillResignActive:applicationDidEnterBackground: 消息,你可以在这里保存应用的状态。
  • 当应用回到前台时,AppDelegate 会收到 applicationWillEnterForeground:applicationDidBecomeActive: 消息,你可以在这里恢复应用的状态。

应用的生命周期阶段

iOS 应用的生命周期包括以下几个阶段:

  1. Not Running (未运行):应用尚未启动或已被系统终止。
  2. Inactive (未激活):应用在前台运行,但未接收到事件。例如,用户锁屏或收到电话时。
  3. Active (激活):应用在前台运行,并接收到事件。这是应用正常运行的状态。
  4. Background (后台):应用在后台运行,可以执行一些任务,例如播放音乐或下载文件。
  5. Suspended (暂停):应用在后台暂停,不执行任何任务。系统可能会在内存不足时终止暂停的应用。

AppDelegate 中的关键方法

AppDelegate 中有几个关键方法,你需要了解它们的作用:

  1. application:didFinishLaunchingWithOptions::应用启动时调用,用于初始化应用。
  2. applicationWillResignActive::应用即将进入非激活状态时调用。
  3. applicationDidEnterBackground::应用已经进入后台时调用。
  4. applicationWillEnterForeground::应用即将回到前台时调用。
  5. applicationDidBecomeActive::应用已经回到前台时调用。
  6. applicationWillTerminate::应用即将被终止时调用。

示例:处理应用启动

application:didFinishLaunchingWithOptions: 方法中,你可以进行一些初始化设置,例如:

swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // 配置应用的根视图控制器
    window = UIWindow(frame: UIScreen.main.bounds)
    window?.rootViewController = ViewController()
    window?.makeKeyAndVisible()

    // 其他初始化操作
    print("应用启动完成!🚀")
    return true
}

这段代码创建了一个 UIWindow,并将 ViewController 设置为根视图控制器,然后让窗口可见。这确保了你的应用在启动时显示正确的界面。🎉

本站使用 VitePress 制作