一。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通知;
附上一个简单的图:
总结:
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这个方法;