• 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 

     

  • 相关阅读:
    oracle中获取当前整点和上一个小时整点,日期类型
    MYSQL中替换oracle中runum用法
    oracle 中备份表
    發生了不愉快的事情
    今年下雪了。。。
    VB.net下非常好用的实现FTP的类
    今年過節不回家了
    焕肤:不要暗沉
    不要打梦到的电话号码。。。
    關於IT職業的思考
  • 原文地址:https://www.cnblogs.com/wyqfighting/p/3173177.html
Copyright © 2020-2023  润新知