一。appdelegate每個方法的簡單介紹:
1、應用程序啟動,並進行初始化時候調用該方法:aaaplication:didFimnishLanuchingWithOptions:
2、應用進入前台並處於活動狀態時候調用:applicationDidBecomeActive:
3、應用從活動狀態進入到非活動狀態:applicationWillResignActive :
4、應用進入到后台時候調用的方法:applicationDidEnterBackground:
5、應用進入到前台時候調用的方法:appplicationWillEnterForeground:
6、applicationWillTeminate:應用被終止的狀態:
二。配合場景,什么時候會調用上面的什么組合
第一種場景:程序開啟,到能使用;
就是:沒有運行(NOT RUNNING)------->沒有激活(INACTIVE) ------>激活( ACTIVE)
這個過程會調用的方法和發出的通知有:
過程1:沒有運行(NOT RUNNING)------->沒有激活(INACTIVE);
這個過程會調用aaaplication:didFimnishLanuchingWithOptions:方法,發出
UIApplicationDidFinishLaunchingNotification通知;
過程2:沒有激活(INACTIVE) ------>激活( ACTIVE)
這個過程會調用applicationDidBecomeActive:方法,發出
UIApplicationDidBecomeActiveNOtification通知;
附上一個簡單的圖:

總結:
1.從這個過程我們就知道,appdelegate的每個方法會對應一個通知,沒當調用那個方法的時候,就會發出那個方法對應的通知;
2.下面的幾個場景,我就不一一說明,直接貼圖了;
3.再貼圖之前,先把appdelegate每個方法對應的通知都貼出來;
方法 | 本地通知 |
aaaplication:didFimnishLanuchingWithOptions: | UIApplicationDidFinishLaunchingNotification |
applicationDidBecomeActive | UIApplicationDidBecomeActiveNOtification |
applicationWillResignActive | UIApplicationWillResignActiveNotification |
applicationDidEnterBackground | UIApplicationDidEnterBackgroundNotification |
appplicationWillEnterForeground | UIApplicationwillEnterForegroundNotification |
applicationWillTeminate | UIApplicationWillTeminateNotification |
第二種場景:點擊Home鍵---程序掛起或者進入后台;(一種是退到后台,沒有退出程序;一種是退到后台,且退出程序)
這里分兩種情況:
情況1:點擊home鍵,退到后台掛起(默認情況);注意:掛起狀態會占用內存;

情況2:點擊home鍵之后,退到后台,直接終止;
注意:默認的情況下,程序進入后台是不會終止程序的;如果要做到可以退出程序,到plist文件修改一下的值:
找到Application does not run in backgroud設置為yes,在文件中保存的鍵應該是UIApplicationExitsOnSuspend設置為Yes。

第三種場景:掛起的程序重新運行
注意:application:didFinishLaunchingWithOptions:這個方法只會在程序初始化的時候才會被調用,而且只調用一次;
所以這里不會調用didFinishLaunchingWithOptions這個方法;
