zoukankan      html  css  js  c++  java
  • IOS 程序生命周期的原理

    一、UIApplication 生命周期

      每一个IOS应用程序都包含一个UIApplication对象,IOS系统通过UIApplication对象监控应用程序生命周期全过程。每一个应用程序都会为UIApplication对象指定一个代理对象,该代理对象用于处理UIApplication对象监控生命周期事件。

    二、IOS应用程序拥有5种状态

    1. Not Running: 应用程序还没有启动,或者应用程序正在运行,中途被系统停止。
    2. Inactive:应用程序正在前台运行,但是,并不接收事件。(当前或者正在执行其它代码)
    3. Active : 当前应用程序正在前台运行,并且接收事件。
    4. Background:应用程序处在后台,并且,还在执行代码。
    5. Suspended:应用程序处在后台,并且停止执行代码。

    三、代理对象UIApplicationDelegate对象:负责处理UIApplication在生命周期监控的事件。

    四、在UIApplication代理对象,与生命周期有关的函数:

     1 // 当app进入非活动状态执行,此期间app不接收消息或事件
     2 - (void) applicationWillResignActive: (UIApplication *) application
     3 
     4 // 当app进入活动状态执行,正好与上面方法相反
     5 - (void) applicationDidBecomeActive: (UIApplication *) application
     6 
     7 // 当app被推送到后台时执行,需要设置在后台时程序继续运行,在此方法中设置
     8 - (void) applicationDidEnterBackground: (UIApplication *) application
     9 
    10 // app将要被推送到前台时执行
    11 - (void) applicationWillEnterForeground: (UIApplication *) application
    12 
    13 // app将要退出时执行,需要完成数据保存或者数据清理工作
    14 - (void) applicationWillTerminate: (UIApplication *) application
    15 
    16 // iphone设备只有有限内存,当app需要分配更多内存时,OS会终止app运行,在终止运行前会调用此方法。
    17 - (void) applicationDidReceiveMemoryWarning: (UIApplication *) application
    18 
    19 // 当程序载入后执行
    20 - (void) applicationDidFinsihLaunching: (UIApplication *) application
    21 
    22 // 当通过URL时执行
    23 - (BOOL) application: (UIApplication *) application handleOpenURL: (NSURL *) url 

    五、UIViewApplication 生命周期

  • 相关阅读:
    PHP防采集方法代码
    Borland C++ Builder 编译绿色Exe程序
    关于结构体构造函数使用总结
    Ubuntu18下移植飞凌的QT4.8.5
    qt在arm平台中,把鼠标指针消失。
    ubuntu下gcc g++操作
    Ubuntu下Qt_Creator支持搜狗中文输入
    ubuntu18.04.1降级交叉编译器 arm-linux-gcc-4.4.3
    error: narrowing conversion of '4323168000' from 'long int' to 'float' inside { } [-Wnarrowing] }; ^
    #pragma pack(1)的意义
  • 原文地址:https://www.cnblogs.com/naray/p/4432498.html
Copyright © 2011-2022 走看看