一。appdelegate每个方法的简单介绍:



 



1、应用程序启动,并进行初始化时候调用该方法:aaaplication:didFimnishLanuchingWithOptions:



 



2、应用进入前台并处于活动状态时候调用:applicationDidBecomeActive:



 



3、应用从活动状态进入到非活动状态:applicationWillResignActive :



 



4、应用进入到后台时候调用的方法:applicationDidEnterBackground:



 



5、应用进入到前台时候调用的方法:appplicationWillEnterForeground:



 



6、applicationWillTeminate:应用被终止的状态:



 



二。配合场景,什么时候会调用上面的什么组合



 


第一种场景:程序开启,到能使用;



 



就是:没有运行(NOT RUNNING)------->没有激活(INACTIVE) ------>激活( ACTIVE)



这个过程会调用的方法和发出的通知有:



 



过程1:没有运行(NOT RUNNING)------->没有激活(INACTIVE);



UIApplicationDidFinishLaunchingNotification通知;



 



过程2:没有激活(INACTIVE) ------>激活( ACTIVE)



UIApplicationDidBecomeActiveNOtification通知;



附上一个简单的图:



swift view 生命周期 appdelegate生命周期_活动状态



总结:



1.从这个过程我们就知道,appdelegate的每个方法会对应一个通知,没当调用那个方法的时候,就会发出那个方法对应的通知;



2.下面的几个场景,我就不一一说明,直接贴图了;



3.再贴图之前,先把appdelegate每个方法对应的通知都贴出来;



方法

本地通知

aaaplication:didFimnishLanuchingWithOptions:

UIApplicationDidFinishLaunchingNotification

applicationDidBecomeActive

UIApplicationDidBecomeActiveNOtification

applicationWillResignActive 

UIApplicationWillResignActiveNotification

applicationDidEnterBackground

UIApplicationDidEnterBackgroundNotification

appplicationWillEnterForeground

UIApplicationwillEnterForegroundNotification

applicationWillTeminate

UIApplicationWillTeminateNotification



 



 



第二种场景:点击Home键---程序挂起或者进入后台;(一种是退到后台,没有退出程序;一种是退到后台,且退出程序)



这里分两种情况:



情况1:点击home键,退到后台挂起(默认情况);注意:挂起状态会占用内存;




swift view 生命周期 appdelegate生命周期_活动状态_02


 


情况2:点击home键之后,退到后台,直接终止;


注意:默认的情况下,程序进入后台是不会终止程序的;如果要做到可以退出程序,到plist文件修改一下的值:


找到Application does not run in backgroud设置为yes,在文件中保存的键应该是UIApplicationExitsOnSuspend设置为Yes。


swift view 生命周期 appdelegate生命周期_应用程序_03


 


第三种场景:挂起的程序重新运行


注意:application:didFinishLaunchingWithOptions:这个方法只会在程序初始化的时候才会被调用,而且只调用一次;


所以这里不会调用didFinishLaunchingWithOptions这个方法;


swift view 生命周期 appdelegate生命周期_应用程序_04