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 |