IOS 应用生命周期

17 Mar 2025 | 4 分钟阅读

一个 iOS 应用程序会经历几个状态,这些状态被称为应用程序生命周期的状态。每个 iOS 开发者都必须了解应用程序生命周期,这有助于理解应用程序的行为。每个 iOS 应用程序在运行时都会经过以下状态。

IOS app lifecycle
  1. 未运行: 当应用程序尚未启动或被系统或用户终止时,它被认为处于未运行状态。
  2. 非活动: 当应用程序在前台但未接收到事件时,它处于非活动状态。换句话说,我们可以说它就像一个桥梁状态,应用程序在转换到不同状态时会短暂地保持在这个状态。
  3. 活动: 当应用程序处于前台状态并接收所有用户事件时,这是应用程序的正常模式。
  4. 后台: 当用户在使用应用程序时点击主屏幕,或者应用程序需要一些额外的执行时间时,应用程序会转换到后台状态。当应用程序即将被挂起时,也会短暂地转换到此状态。在这个状态下,应用程序仍然在后台并执行代码。
  5. 挂起: 在这个状态下,应用程序仍然在后台,但不执行代码。应用程序会自动移动到这个状态。在这个状态下,应用程序仍然驻留在内存中。但是,前台应用程序总是优先于挂起的应用程序,并且可以随时被清除,恕不另行通知。

我们必须注意到,当我们在 XCode 中构建和运行一个 iOS 应用程序时,应用程序的主要入口点是 UIApplicationDelegate,这是一个应用程序必须实现的协议,以便在发生一些用户事件时收到通知,例如应用程序启动、应用程序进入后台、应用程序进入前台、推送通知等。

UIApplicationDelegate 包含一些应用程序生命周期方法,当应用程序开始运行时会通知这些方法。UIApplicationDelegate 方法如下所示。

  1. application: didFinishLaunchingWithOptions:-> Bool: 当应用程序最初启动时,会调用此方法。我们可以在此方法中为应用程序进行任何初始设置,例如 Firebase 配置、用户导航等。此时会加载故事板,但我们可以维护状态恢复。
  2. applicationWillEnterForeground: 在 didFinishLaunchingWithOptions 之后调用此方法。当应用程序从后台进入前台时也会调用此方法。
  3. applicationDidBecomeActive: 在 applicationWillEnterForeground 之后调用此方法。如果我们需要在应用程序进入前台时执行任何特定任务,例如字体更新等,那么我们可以将代码放在此方法中。
  4. applicationWillResignActive: 当应用程序即将变为非活动状态时会通知此方法。例如,用户收到电话;用户按下 Home 按钮等)。
  5. applicationDidEnterBackground: 当应用程序在变为非活动状态后进入后台状态时会通知此方法。
  6. applicationWillTerminate: 当应用程序即将从内存中最终终止时会调用此方法。如果我们需要执行任何最终清理,那么我们可以将代码放在此方法中。

我们可以将要在应用程序启动时运行的代码放在 didFinishLaunchingWithOptions 方法中。例如,在一个需要用户登录才能使用应用程序的应用程序中,我们可以通过检查 UserDefaults 来检查用户是否已经登录到应用程序。如果用户已登录,那么我们可以将用户导航到主屏幕;否则,我们可以将其导航到登录屏幕。

当我们创建任何 iOS 项目时,首先创建的 AppDelegate 类如下所示。


下一个主题什么是 iOS 越狱