app的生命周期

转自幻想乡的技术宅

app状态

  • not running : 程序未启动
  • inactive :程序在前台运行,但是没有接收到事件
  • active : 程序在前台接收到事件
  • background : 程序进入后台
  • suspended : 挂起,程序在内存中,但是系统会随时清除应用
状态转换示意图
app的生命周期_第1张图片
photo


AppDelegate的代理回调

  1. 应用进入前台


    app的生命周期_第2张图片
    1
  2. 应用进入后台


    app的生命周期_第3张图片
    2
  3. 基于警告式响应中断


    app的生命周期_第4张图片
    3

    需要的操作:在applicationWillResignActive中

    • 停止timer和其他周期性的任务
    • 停止正在运行的请求
    • 暂停视频播放
    • 暂停游戏进行
    • 减少OpenGL ES的帧率
    • 挂起任何分发的队列和不重要的操作队列(你可以继续处理网络请求或其他时间敏感的后台任务)
      注:当程序回到active,上述停止的任务重新开始(游戏任然暂停)
  4. 应用进入后台


    app的生命周期_第5张图片
    4

    需要的操作:保存用户数据或状态信息到磁盘

  5. 应用返回前台


    app的生命周期_第6张图片
    5
  6. 程序终止
    applicationWillTerminate:保存数据或状态
    程序符合以下情况之一,只要进入后台或挂起就会终止
    • iOS4.0以前的系统
    • APP是基于iOS4.0之前系统开发的
    • 设备不支持多任务
    • 在plist中包含了UIApplicationExitsOnSuspend键

你可能感兴趣的:(app的生命周期)