一、应用程序状态
not running 未运行 程序未启动
inactive 未激活 程序在前台运行,但没有接收事件,处于休眠状态
active 激活 程序在前台运行,接收到了事件。
background 后台 程序在后台而且能执行代码,只会停留一段时间
suspended 挂起 程序在后台不能执行代码
二、程序运行状态代理的回调
1、进程启动 但还没进入状态保存
- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions
2、启动基本完成 程序准备开始运行
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
3、程序准备进入非活动状态,在此期间,应用程序不接收消息或事件,比如来电话了
- (void)applicationWillResignActive:(UIApplication *)application
4、程序准备进入活动状态
- (void)applicationDidBecomeActive:(UIApplication *)application
5、程序被推送到后台调用,可能有几秒给你处理未完成程序
- (void)applicationDidEnterBackground:(UIApplication *)application
6、程序从后台将要重新回到前台的时候调用
- (void)applicationWillEnterForeground:(UIApplication *)application
7、当程序将要推出时候调用,通常是用来保存数据和一些退出前的清理工作,这个需要设置UIApplicationExitsOnSuspend的键值。
- (void)applicationWillTerminate:(UIApplication *)application
8、程序载入后执行
- (void)applicationDidFinishLaunching:(UIApplication*)application
现在启动程序看看执行的顺序:
启动程序
willFinishLaunchingWithOptions
didFinishLaunchingWithOptions
applicationDidBecomeActive
按下home键
applicationWillResignActive
applicationDidEnterBackground
双击home键,再打开程序
applicationWillEnterForeground
applicationDidBecomeActive