iOS应用的程序状态
正常启动一个app时
- not running: app未启动时处于未运行状态
- inactive: 启动app后进入未激活状态
application:willFinishLaunchingWithOptions: 应用启动未进入状态保存的回调application:didFinishLaunchingWithOptions: 基本的准备已经完成,可以启动的回调
- active: 激活状态
applicationDidBecomeActive: app已经切换到active状态后的回调
切换到后台再切换到前台
- active -> inactive
applicationWillResignActive: app将要从前台切换到后台的回调
- background: 后台状态
applicationDidEnterBackground: app已经进入后台的回调
- inactive -> active
applicationWillEnterForeground: app将要从后台切换到前台的回调applicationDidBecomeActive: app已经切换到active状态后的回调
来回切换应用/锁屏解锁
- 换到另一个app/锁屏:由状态
active切换到inactive,此时调用applicationWillResignActive - 换到此app/解锁:由状态
inactive切换到running,此时调用applicationDidEnterBackground
应用终止
applicationWillTerminate: app将要结束时的回调
使用应用状态的回调
在AppDelegate中使用
1 | - (void)applicationDidEnterBackground:(UIApplication *)application { |
使用通知
1 | [[NSNotificationCenter defaultCenter]addObserver:self |