iOS 一个application的生命周期

1、点击run----启动程序

    didFinishLaunchingWithOptions:这时一个application启动时调用的第一个方法,我们把要启动的那个controller的信息都写在这个方法里。

    applicationDidBecomeActive:当application变为活动状态时被调用

    重启任何处于非活动状态的被暂停的或还没开始的任务。如果这个application之前在后台,那么只是刷新一下你的界面

2、点击home----从前台到后台 

 applicationWillResignActive:当这个application将要从活动状态,变为非活动状态时调用。

  如:接听电话、收到短信或用户退出这个application

  这个方法用来暂停正在运行的任务、disable timers、减慢OpenGL ES的桢率。游戏开发用这个方法暂停游戏。

 applicationDidEnterBackground:当application已经进入后台时调用。

  这个方法用来释放共享资源,保存用户数据、invalidate timers、保存这个application的当前状态信息以防它突然被关闭

   如果你的application支持后台运行,那么不会执行这个方法,而执行applicationWillTerminate(当用户退出的时候)

3、在手机上再点开这个程序----从后台到前台

applicationWillEnterForeground:当application将要进入前台时调用

 application从后台到非活动状态时调用,你可以在这个方法里重写当进入后台时的许多操作??

Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.

applicationDidBecomeActive

4、程序彻底退出时 

applicationWillTerminate:当application将要关闭时调用

保存需要的数据,保存各种状态,保存配置等

Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.

注意:当系统内存不足时,系统会强行关闭那些尚在内存中但处于后台状态的 app,以腾出足够的内存供使用。但是那些被强行关闭的程序不会调用任何UIApplicationDelegate的委托方法,只会得到一个KILL 信号。

        当我们长按app icon,强行关闭app,也是同样的处理过程。

 5、applicationDidRecieveMemoryWarning

      内存不足时,释放对象池里的对象

感谢 oliver@drobnik.com 提供如下详细的图,并以cc许可发布。

参考:http://blog.csdn.net/kesalin/article/details/6691766 

 

原文地址:https://www.cnblogs.com/wyqfighting/p/3173177.html