简要介绍iOS应用程序生命周期

iOS应用程序生命周期是一个非常大而复杂的主题。 我将尽力解释它。

下图来自斯坦福大学的iOS编程课程,从我看来,它清楚地表示了应用程序的生命周期。 让我们深入研究它,并尝试了解正在发生的事情以及原因。

实际上,当用户启动一个应用程序,浏览它,将其发送到后台,启动另一个应用程序,从内存中卸载它,应用程序将“消息”发送到应用程序委托类时,您可以从那里捕获并处理它们。 应用程序在不同的生命周期状态中移动,这些状态由其活动级别定义,例如未运行,不活动,活动,后台,已暂停。

关于应用状态的几句话:

  1. 未运行-应用尚未启动或系统已将其关闭。
  2. 无效-启动之前的应用程序状态。 应用程序正在运行,但正在执行其他操作,尚无法与用户交互一起使用。
  3. 活动-在前台运行并与用户合作的应用的正常状态。 应用程序接收事件,更新UI。
  4. 背景-背景状态,表明应用程序仍在运行,但用户看不到它的界面。
  5. 已暂停-应用程序仍在设备内存中,但是代码未运行。 如果发生内存不足的情况,系统可能会在不通知的情况下终止应用程序。

关于应用程序委托和在不同生命周期状态下调用的方法的几句话:

首先让我指出,应用程序委托是UIApplication对象调用的一组方法,用于响应应用程序生命周期中的重要事件。 它将确保应用程序与系统以及其他应用程序进行预期的交互。cI将指出最重要的应用程序委托方法。

应用程序成功启动启动过程后:

应用程序:willFinishLaunchingWihtOptions

叫做。 这是执行任何代码的第一个机会。 如果启动成功:

应用程序:didFinishLaunchingWithOptions

方法被调用。 同时,应用程序发布通知UIApplicationDidFinishLaunchingNotification。 当应用程序完成启动并准备好显示任何窗口时,将调用此方法,因此这是准备界面的最后机会。

在上图中,这些进程的状态标记为数字1。

申请生效后:

applicationDidBecomeActive

叫做。 当您的应用程序从非活动状态转换为活动状态时,将调用此方法。 [箭头2。]

如果用户按下了主页按钮或启动了另一个应用程序:

applicationWillResignActive

调用,并发布UIApplicationWillResignActiveNotification。 当应用程序过渡到非活动状态时,将调用此方法。 对于某些类型的临时中断(例如打来的电话或SMS消息),或者当用户退出应用程序并开始过渡到背景状态时,可能会发生这种情况。 您可以在图中的数字3下看到此过程。

进入非活动状态后

applicationDidEnterBackground

被调用,并开始向后台过渡。 在图中,此过程在箭头4下方列出。也许还不清楚,但是我所指的箭头方向是从非活动状态到背景状态。

如果应用程序没有被用户终止或被系统杀死,则可以返回到前台,它是箭头5,与箭头4相反。调用的方法是:

applicationWIllEnterForeground

但是该应用未移至活动状态,但仍保持不活动状态。

我要向您介绍的最后一个委托方法:

applicationWillTerminate。

当终止事件被触发时,它通知委托。 强制退出应用程序或关闭设备会触发该方法。 这意味着该应用程序将从内存中完全删除。 箭号8。

可能您想知道暂停状态。 我没有透露太多信息,因为应用程序在进入后台模式后正处于这种状态。 这是当应用程序在后台但未运行实际代码时的状态。 应用程序将在5秒钟或更长时间(如果要求)后进入。 系统不会通知有关进入此模式的信息。 如果发生内存不足的情况,系统可能会在没有任何通知的情况下终止应用程序。

每个iOS应用始终处于五个状态之一。 iOS管理状态,但该应用负责管理任务以确保平稳过渡。