iOS基础系列之App生命周期
应用程序的执行状态
在任何特定的时刻,你的应用都会处于一种状态下。而且系统会根据系统中发生的操作将你的应用从一个状态移动到另一个状态。
State (状态) | Description(描述) |
---|---|
Not running(未运行) | 应用并未启动,或者正在运行但是被系统终止 |
Inactive(非活动) | 应用正在前台运行,但是当前没有接收事件。一个应用通常只会短暂处于这种状态,它可能正过渡到其他状态 |
Active (活动) | 应用正在前台运行,并正在接收事件。这是前台应用程序的正常模式 |
Background (后台) | 应用在后台运行并执行代码,大多数应用进入后台后不久就会进入到暂停状态。但是应用可以保持一段时间在后台 |
Suspended (暂停) | 应用程序在后台,但是不执行代码。系统会自动将应用程序调整到这种状态。处于这种状态的时候应用会保存在内存中,但是不执行代码。当打开程序多的时候,系统会自动清除内存中已经暂停的应用为前台应用腾出更多空间 |
代理方法
大多数的状态转换都伴随调用你的应用的代理方法。这些方法是你处理状态改变的合适时机。
application:willFinishLaunchingWithOptions:
应用将要进入初始化操作开始启动应用application:didFinishLaunchingWithOptions:
应用完成了初始化操作,开始运行applicationDidBecomeActive:
应用进入活跃状态,接收事件applicationWillResignActive:
应用将要进入非活跃状态。比如电话来了,或者双击home键applicationDidEnterBackground:
应用处于后台状态applicationWillEnterForeground:
应用将要进入前台执行applicationWillTerminate:
应用退出前执行
应用开始运行按顺序执行了
- willFinishLaunchingWithOptions
- didFinishLaunchingWithOptions
- applicationDidBecomeActive
点击home键后执行了
- applicationWillResignActive
- applicationDidEnterBackground
双击home键重新进入app
- applicationWillEnterForeground
- applicationDidBecomeActive
双击home键 (不做操作的话一直处于这个状态)
- applicationWillResignActive
关闭应用
- applicationDidEnterBackground
- applicationWillTerminate