UIApplicationDelegate 有如下的函数来监视整个应用的状态变化的
-
– application:willFinishLaunchingWithOptions:
-
– application:didFinishLaunchingWithOptions:
-
– applicationDidBecomeActive:
-
– applicationWillResignActive:
-
– applicationDidEnterBackground:
-
– applicationWillEnterForeground:
-
– applicationWillTerminate:
-
– applicationDidFinishLaunching:
具体相关的可以参考:https://developer.apple.com/library/ios/documentation/uikit/reference/UIApplicationDelegate_Protocol/Reference/Reference.html#//apple_ref/doc/uid/TP40006786-CH3-DontLinkElementID_3
根据文档的说明:
对于– applicationDidFinishLaunching:在iOS3.0以前(不包括3.0)才会使用,在iOS3.0及其以后都是使用– application:didFinishLaunchingWithOptions:来代替
因此,上述的8个函数就用7个状态来表示
状态1:将要完成加载:willFinishLaunching(只是在iOS6及其以后的版本才有这个函数)
状态2:已经完成加载:didFinishLaunching
状态3:将要失去焦点(将要进入后台模式):willResignActive
状态4:已经进入后台模式(已经失去焦点):didEnterBackground
状态5:将要进入前台模式(将要成为焦点):willEnterForeground
状态6:已经成为焦点(已经进入前台模式):didBecomeActive
状态7:程序将要结束:willTerminate
如下的事件:
事件1. 当程序启动的时候,状态的变化
开始--->状态1----->状态2---->状态6
事件2. 程序在前台的时候,按下Home键,状态的变化
状态6--->状态3----->状态4
事件3. 程序在前台的时候,按下锁屏键
同事件2:状态6--->状态3----->状态4
事件4. 在事件3结束后,解锁
状态4--->状态5----->状态6
事件5. 程序在前台的时候,自动锁屏了
同事件2:状态6--->状态3----->状态4
事件6. 状态7的验证现在还没有好的验证方法,难道在使用的过程中意外的崩溃了,现在还没有研究清楚