UIApplicationDelegate State Tran
2018-12-08 本文已影响0人
我是繁星
资料来源于Apple 文档
Managing State Transitions
appDelegate的一个重要的任务就是去响应系统提供的状态转换,当状态转换时,应用程序会调用合适的委托。应用程序的每个状态都有不同的规则,appDelegate会根据不同的状态去响应响应的方法,表1列出了这个app的状态,图1描述了app如何从一个状态切换到另外一个状态
Table 1 app states
State | Description |
---|---|
not running | 应用没有启动或者被终止,有可能是用户干的也有可能是系统干的 |
InActive | 一个app在前台运行但不接收事件(虽然他可能执行其他代码),app通常只会短暂的停留在这个状态,然后就切换成其他状态了 |
Active | 应用程序在前台并且可以接收事件,这是app在前台时的正常状态 |
Background | 应用在执行代码,但是屏幕是不可见的,当用户退出app,系统会将app短暂的切换到background state在挂起之前,在其他时候,系统在后台启动app(或者唤醒一个挂起的app)并且给他一定的时间去处理一些特殊任务。例如:系统可能会唤醒一个程序,以便他可以处理后台下载,某些位置时间,远程通知和一些其他类型的事件 |
Suspended | app在内存中,但是不执行代码。系统挂起app不执行任何任务,系统为了腾出更多空间给其他app,可以在任何时间挂起app |
Figure 1
State changes in an iOS app
1.png
当app状态发生改变的时候回调用下面的方法
启动时间:
过度到前台
过度到后台
过度到非活跃状态
-
applicationWillResignActive(_:)
(当app离开前台时调用) -
applicationWillEnterForeground(_:)
(当即将进入前台的时候调用)
结束
-
applicationWillTerminate(_:)
(应用即将结束)