1。执行顺序:
第一次启动应用时:
1. application:didFinishLaunchingWithOptions: //运行
2. applicationDidBecomeActive: //激活
1. applicationWillResignActive: //取消激活
2. applicationDidEnterBackground: //进入后台
按下home键2次,选择应用进入前台激活:
1. applicationWillEnterForeground://进入前台
2. applicationDidBecomeActive: //激活
e.g.
AppDelegate.h文件
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (nonatomic, strong) UIWindow *window;
/* Saving the state of our app */
- (void) saveUserScore;
- (void) saveLevelToDisk;
- (void) pauseGameEngine;
/* Loading the state of our app */
- (void) loadUserScore;
- (void) loadLevelFromDisk;
- (void) resumeGameEngine;
@end
AppDelegate.m文件
#import "AppDelegate.h"
@implementation AppDelegate
- (void) saveUserScore{
/* Save the user score here */
}
- (void) saveLevelToDisk{
/* Save the current level ( e.g. the user's location on map to disk) */
}
- (void) pauseGameEngine{
/* Pause the game engine here */
}
- (void) loadUserScore{
/* Load the user's location back to memory */
}
- (void) loadLevelFromDisk{
/* Load the user's previous location on the map */
}
- (void) resumeGameEngine{
/* Resume the game engine here */
}
- (BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
.....
}
//比如接了个电话,此时app处于inactive
- (void)applicationWillResignActive:(UIApplication *)application{
[self pauseGameEngine];
}
//结束电话时,此时app becomes active again
- (void)applicationDidBecomeActive:(UIApplication *)application{
[self resumeGameEngine];
}
- (void)applicationDidEnterBackground:(UIApplication *)application{
[self saveUserScore];
[self saveLevelToDisk];
[self pauseGameEngine];
}
- (void)applicationWillEnterForeground:(UIApplication *)application{
[self loadUserScore];
[self loadLevelFromDisk];
[self resumeGameEngine];
}
@end