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的驗證現在還沒有好的驗證方法,難道在使用的過程中意外的崩潰了,現在還沒有研究清楚