1、应用程序状态
1.1、Not running-未运行
程序没有启动
1.2、Inactive-未激活
程序在前台运行,不过没有接受到事件,在没有事件处理下程序同城停留在这个状态
1.3、Active-激活
程序在前台运行并且接受到了事件,这也是前台的一个正常的模式
1.4、Background-后台
程序在后台而且能执行代码,大多数程序进入这个状态后会在这个状态停留一会,时间到了之后会进入挂起状态,有的程序经过特殊的请求后可以长期处于Background状态
1.5、Suspended-挂起
程序在后台不能执行代码。系统会自动把程序变成这个状态而且不会发出通知。当挂时,程序还是停留在内存中的,当系统内存低时,系统会把挂起的程序清除掉,为前台程序提供更多的内存
2、生命周期方法
2.1、– application:willFinishLaunchingWithOptions:
告诉代理进程启动但还没进入状态保存
2.2、– application:didFinishLaunchingWithOptions:
告诉代理启动基本完成程序准备开始运行
2.3、– applicationDidBecomeActive:
当应用程序进入活动状态执行
2.4、– applicationWillResignActive:
当应用程序将要入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来电话
2.5、– applicationDidEnterBackground:
当程序被推送到后台的时候调用
// 可以再block中开始后台任务
[application beginBackgroundTaskWithExpirationHandler:^{
NSLog(@"begin Background Task With Expiration Handler");
}];
2.6、– applicationWillEnterForeground:
当程序从后台将要重新回到前台时候调用
2.7、– applicationWillTerminate:
当程序将要退出是被调用
2.8、– applicationDidFinishLaunching:
This method is used in earlier versions of iOS to initialize the app and prepare it to run. In iOS 3.0 and later, you should use the application:didFinishLaunchingWithOptions: instead. In iOS 6.0 and later, you may also use the application:willFinishLaunchingWithOptions: method to initialize your app.
3、相关操作
3.1、程序启动
1、– application:willFinishLaunchingWithOptions:
2、– application:didFinishLaunchingWithOptions:
3、– applicationDidBecomeActive:
3.2、进入后台
1、– applicationWillResignActive:
2、– applicationDidEnterBackground:
3.3、进入前台
1、– applicationWillEnterForeground:
2、– applicationDidBecomeActive:
3.3、关闭程序
1、– applicationDidEnterBackground:
2、– applicationWillTerminate: