iOS基础知识整理之应用的生命周期

应用的生命周期

Main函数入口

UIApplicationMain

  1. 从可用Storyboard文件加载用户界面
  2. 调用AppDelegate自定义代码来初始化设置
  3. 将app放入Main Run Loop环境中来响应和处理与用户交互产生的事件

应用程序的五种状态

  • Not Running(非运行状态)
    应用没有运行或被系统终止。
  • Inactive(前台非活动状态)
    应用正在进入前台状态,但是还不能接受事件处理。
  • Active(前台活动状态)
    应用进入前台状态,能接受事件处理
  • Background(后台状态)
    应用进入后台后,依然能够执行代码,如果有可执行的代码,就会执行代码,如果没有可执行的代码活着将可执行的代码执行完毕,应用会马上进入挂起状态。有的程序经过特殊的请求后可以长期处于Background状态。
  • Suspended(挂起状态)
    处于挂起的应用进入一种“冷冻”状态,不能执行代码,如果系统内存不够,系统就把挂起的程序清除掉,为前台程序提供更多的内存,应用会被终止。

AppDelegate的代理方法

作为应用程序的委托对象,AppDelegate类在应用生命周期的不同阶段会调用不同的方法。

方法 本地通知 说明
application: didFinishLaunchingWithOptions: UIApplicationDidFinishLaunching-Notification 应用启动并进行初始化时会调用该方法并发出通知。这个阶段会示例化根视图控制器
application: DidBecomeActive: UIApplicationDidBecomeActive-Notification 应用进入前台并处于活动状态时调用该方法并发出通知,这个阶段可恢复UI的状态(例如游戏状态等)
application:WillResignActive: UIApplicationWillResignActive-Notification 应用从活动状态进入到非活动状态时调用该方法并发出通知。这个阶段可以保存UI的状态(例如游戏状态等)
application:DidEnterBackground: UIApplicationDidEnterBcakground-Notification 应用进入后台时调用该方法并发出通知。这个阶段可以保存用户数据,释放一些资源(例如释放数据库资源等)
application:WillEnterForeground: UIApplicationWillEnterForeground-Notification 应用进入到前台,但是还没有处于活动状态时调用该方法并发出通知。这个阶段可以恢复用户数据
application:WillTerminate: UIApplicationWillTerminate-Notification 应用被终止时调用该方法并发出通知,但内存清除时除外。这个阶段可以释放一些数据,也可以保存用户数据。

你可能感兴趣的:(iOS基础知识整理之应用的生命周期)