iOS 应用程序的常见执行生命周期有哪些?

swiftserver side programmingprogramming更新于 2025/10/10 12:37:17

在本文中,您将了解 iOS 应用程序的不同执行状态。根据当前状态,您可以决定要执行的任务。应用程序可能具有不同的状态。

iPhone 操作系统 (iOS) 为我们提供了应用程序的五种不同状态,如下所示:

  • 未运行

  • 非活动

  • 活动

  • 后台

  • 已暂停

iOS 应用程序在几种状态下运行,这些状态称为应用程序生命周期状态。应用程序生命周期对于 iOS 开发者至关重要,因为它们可以帮助他们了解应用程序的行为方式。每个 iOS 应用程序都会经历以下状态。

  • 未运行 − 顾名思义,应用程序当前未运行。这意味着应用程序中没有正在执行的进程。如果应用程序被操作系统终止,则会切换到未运行状态。

  • 非活动 − 应用程序处于前台模式,但未接收任何事件。这意味着应用程序已打开,但未接收任何输入。发生这种情况的原因可能包括您正在通话或收到消息。在这种状态下,操作系统不允许我们与应用程序交互。

  • 活动 − 这是应用程序处于前台模式的最常见状态。在此状态下,应用程序会响应所有事件。

  • 后台 − 顾名思义,应用程序无法进行交互。当您从一个应用切换到另一个应用时,第一个应用将切换到后台模式。当应用处于后台时,操作系统本身可能会将其暂停。当然,您也可以在后台模式下执行代码,但持续时间有限。

  • 已暂停 − 如果应用在后台运行但未执行任何任务,则可以将其暂停。在这种情况下,操作系统将分析应用的使用情况,并在必要时终止它。

对于 iOS 应用程序,UIApplicationDelegate 是主入口点,在您构建和运行应用程序时执行。该协议提供了一组与其关联的默认方法。这些方法可以帮助我们识别应用程序的当前状态。

对于 iOS 开发者来说,了解这些方法的用法非常重要。

当应用程序开始运行时,UIApplicationDelegate 中的某些方法会收到通知。以下是 UIApplicationDelegate 中可用的方法。

  • application didFinishLaunchingWithOptions:-> Bool − 首次启动应用程序时会调用此方法。我们可以在此方法中执行应用程序的初始设置,例如 Firebase 配置、推送通知和位置访问权限、库设置等。我们使用相同的方法来设置要加载的第一个窗口。

  • applicationWillEnterForeground − 当应用程序从后台模式进入前台模式时,将执行此方法。在此方法中,您可以执行一些操作,例如继续动画、恢复任务、恢复下载过程等。

  • applicationDidBecomeActive − 当应用程序变为活动状态且当前处于前台模式时,此方法用于执行主题更新等任务。

  • applicationWillResignActive − 当您的应用程序即将变为非活动状态时,此方法将通知您。应用程序不会进入后台模式,并且在非活动模式下会停留在屏幕上。如果您接到电话等,可能会发生这种情况。

  • applicationDidEnterBackground − 如果应用因任何原因进入后台,此方法会通知您执行指定的操作,例如暂停动画、暂停同步或停止任何不再需要的繁重操作。

  • applicationWillTerminate − 如果应用即将被操作系统终止或从内存中移除,此方法将通知您执行代码中的最终清理操作。

在 didFinishLaunchingWithOptions 方法中,我们可以放置应用启动时运行的代码。当用户需要登录才能使用应用时,我们可以检查 UserDefaults 以了解用户是否已登录应用。登录后,用户可以导航到主屏幕。否则,用户可以导航到登录屏幕。

@UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { /* 1. Override this function to perform the tasks that need to be performed on app launch. 2. Set up Firebase configuration, library configuration, app theme, etc. */ return true } func applicationWillResignActive(_ application: UIApplication) { /* You can pause ongoing processes like timers, animation, graphics, location access, etc. */ } func applicationDidEnterBackground(_ application: UIApplication) { /* You can invalidate running timers, save critical information of an user, released shared resources, etc. */ } func applicationWillEnterForeground(_ application: UIApplication) { // Resume the actions that are paused in background mode. } func applicationDidBecomeActive(_ application: UIApplication) { // You can refresh the user interface, restarting the actions that were paused when the app goes in inactive mode. } func applicationWillTerminate(_ application: UIApplication) { // You can save critical information in the app. } }

结论

当你在移动设备上打开一个应用时,会发生很多事情。iOS 操作系统是最直观、用户友好的操作系统之一。了解移动应用的生命周期对于成功管理任何类型的应用都至关重要。经验丰富的开发者能够充分利用生命周期的强大功能。



相关文章



关于我们 | 隐私条款 | 学习路线
返回顶部