记录一个菜鸟的iOS学习之旅,如能帮助正在学习的你,亦枫不胜荣幸;如路过的大神如指教几句,亦枫感激涕淋!
在上一节中,我们在剖析iOS工程项目结构时,提到了AppDelegate这个类。作为应用程序委托对象,AppDelegate类会在iOS应用的不同生命周期阶段调用不同的方法,供开发人员处理相应的事件。在介绍这些方法之前,我们先通过一张图看一下iOS应用的不同生命周期状态和彼此之间的关系:
Not Running
非运行状态。应用没有运行或被系统终止;Inactive
前台非活动状态。应用正在进入前台状态,但是还不能接受事件处理;Active
前台活动状态。应用进入前台状态,能接受事件处理;Background
后台状态。应用进入后台后,依然能够执行代码。如果有可执行的代码,就会执行代码,如果没有可执行的代码或者将可执行的代码执行完毕,应用会马上进入挂起状态;Suspended
挂起状态。处于挂起的应用进入一种“冷冻”状态,不能执行代码。如果系统内存不够,应用会被终止;
以上便是五种iOS应用的不同生命周期状态,在应用的使用过程中,会依据实际的使用场景,出现对应的生命周期状态跃迁的变化。
在上述五种应用生命周期状态跃迁的过程中,iOS系统回回调应用程序委托对象AppDelegate类中的不同方法,同时发送相应的通知。这里,我们通过图表列举一些主要的方法供大家参考:
大家可以在AppDelegate类中的不同方法下添加输出日志的代码,通过点击桌面图标、操作Home键等方式模拟应用启动、应用退出等不同场景,查看日志输出信息,以此加深对不同场景下各个生命周期状态跃迁过程的理解。