浅谈App生命周期

App的几种状态

Not running   未运行  程序没启动.

Inactive          这个状态比较特殊: 未激活, 也叫放空状态. 一般在程序从后台进入前台或者程序刚开始启动会出现短暂的inactive状态; 在App前台时, 下拉           通知栏是也处于这种状态, 一般不进行任何操作, 我测试过特殊的情况是在inactive状态下是可以接受到远程推送的.

Active            激活        程序在前台运行而且接收到了事件。这也是前台的一个正常的模式.

Backgroud     后台      程序在后台而且能执行代码, 大多数程序进入这个状态后会在在这个状态上停留一会。时间到之后会进入挂起状态(Suspended)。有的程序经过特殊的请求后可以长期处于Backgroud状态

Suspended    挂起        程序在后台不能执行代码。系统会自动把程序变成这个状态而且不会发出通知。当挂起时,程序还是停留在内存中的,当系统内存低时,系统就把挂起的程序清除掉,为前台程序提供更多的内存。

Appdelegate中的代理方法

didFinishLaunching 告诉代理启动基本完成程序准备开始运行

WillResignActive 当应用程序将要入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来电话了

DidBecomeActive 当应用程序入活动状态执行,这个刚好跟上面那个方法相反

DidEnterBackground 当程序被推送到后台的时候调用。所以要设置后台继续运行,则在这个函数里面设置即可

WillEnterForeground 当程序从后台将要重新回到前台时候调用,这个刚好跟上面的那个方法相反

WillTerminate 当程序将要退出是被调用,通常是用来保存数据和一些退出前的清理工作。这个需要要设置UIApplicationExitsOnSuspend的键值

DidReceiveRemoteNotification: fetchCompletionHandle iOS7以后在收到远程推送的时候调用, (在前台时或者点击通知栏上的通知都会跑这种方法, 在点击通知启动运用是也会调用didFinishLaunching方法)

你可能感兴趣的:(浅谈App生命周期)