众所周知 当你启动程序的时候 程序首先进入AppDelegate.m中
之后就是application的生命周期了
1.- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
当应用程序启动时执行,只在应用程序启动时执行一次。
若用户直接启动,launchOptions中没有数据,若通过其它方式启动应用,launchOptions包含对应的内容。
2.- (void)applicationWillResignActive:(UIApplication *)application
在应用程序将要由活动状态切换到非活动状态时候,要执行的委托调用,
如 :按下Home 按钮 返回主屏幕 或全屏之间切换应用程序等。
3.- (void)applicationDidEnterBackground:(UIApplication *)application
在应用程序已进入后台程序时, 要执行的委托调用
4.- (void)applicationWillEnterForeground:(UIApplication *)application
在应用程序将要进入前台时(被激活),要执行的委托调用,刚好和applicationWillResignActive方法相对应。
5.- (void)applicationDidBecomeActive:(UIApplication *)application
在应用程序已被激活后,要执行的委托调用,刚好与applicationDidEnterBackground方法相对应。
6.- (void)applicationWillTerminate:(UIApplication *)application
在应用程序完全退出的时候,要执行的委托调用。这个需要设置UIapplicationExitsOnSuspend的值
下面说下三个常用的情况
首先打开App的情况下 会走以下下几步
1.didFinishLaunchingWithOptions
2.applicationDidBecomeActive
之后上滑呼出工具栏 走 applicationWillResignActive 在此基础上点击home键或者下滑工具栏都会走 applicationDidBecomeActive。
app使用中 双击home键 走applicationWillResignActive 之后点击Home回去 走applicationDidBecomeActive。 如果是上滑杀死程序 先走applicationDidEnterBackground 再走 applicationWillTerminate
App使用中 单机home键 走applicationWillResignActive 之后走 applicationDidEnterBackground 退到后台重新打开App走applicationWillEnterForeground 之后走applicationDidBecomeActive。。。。。。。。。。。。。。