方法

本地通知

说明

application:didFinishLaunchingWithOptions:

UIApplicationDidFinishLaunchingNotification

应用启动并进行初始化时会调用该方法并发出通知。这个阶段会实例化根视图控制器

applicationDidBecomeActive:

UIApplicationDidBecomeActiveNotification

应用进入前台并处于活动状态时调用该方法并发出通知。这个阶段可以恢复UI状态(例如游戏状态)

applicationWillResignActive:

UIApplicationWillResignActiveNotification

应用从活动态进入非活动态时调用该方法并发出通知。这个阶段可以保存UI的状态(例如游戏状态)

applicationDidEnterBackground:

UIApplicationDidEnterBackgroundNotification

应用进入后台时调用该方法并发出通知,这个阶段可以保存用户数据,释放一些资源(一些可重新加载的图片等资源)

applicationWillEnterForeground:

UIApplicationWillEnterForegroundNotification

应用进入前台,但是还没有处于活动状态时调用该方法并发出通知。这个阶段可以恢复用户数据

applicationWillTerminate:

UIApplicationTerminateNotification

应用被终止时调用该方法并发出通知。这个阶段释放一些资源,也可以保存用户数据

当产生中断时,App应该在applicationWillResignActive:方法中:

  • 停止timer 和其他周期性的任务
  • 停止任何正在运行的请求
  • 暂停视频的播放
  • 如果是游戏那就暂停它
  • 减少OpenGL ES的帧率 挂起任何分发的队列和不重要的操作队列(你可以继续处理网络请求或其他时间敏感的后台任务)。 当程序回到active状态 , applicationDidBecomeActive: 方法应该上面提到的任务重新开始,比如重新开始timer, 继续分发队列,提高OpenGL ES的帧率。不过游戏要回到暂停状态,不能自动开始。

当App进入后台时,应当:

  • 保存用户数据或状态信息,所有没写到磁盘的文件或信息,在进入后台时,最后都写到磁盘去,因为程序可能在后台被杀死,
  • 释放尽可能释放的内存
应用进入后台后如果没有设置在后台运行的话,5s后将会挂起,挂起的App仍将在内存中,
但当系统内存较低时,将会终止一些挂起的程序来回收内存。那些内存最大的程序首先被终止。
因此当App进入后台后应尽可能的释放内存
复制代码

非运行状态-应用启动场景



点击home键-应用退出场景

应用可以在后台运行或挂起的情况:



应用不可以在后台运行:



挂起重新运行的场景



应用进入后台后如果没有设置在后台运行的话,5s后将会挂起,挂起的App仍将在内存中,但当系统内存较低时,将会终止一些挂起的程序来回收内存。