iOS —UIApplication
UIApplication是应用程序的象征,每一个应用都有自己的UIApplication对象,而且是单例。通过[UIApplication sharedApplication]可以获得这个单例对象。说到单例对象,还有几个常见的单例,比如[NSNotificationCenter defaultCenter], [NSUserDefaults standardUserDefaults], [NSFileManager defaultManager]等等。
AppDelegate — 在app受到干扰时,比如来电或者锁屏,会产生一些系统事件,这时UIApplication会通知它的delegate对象,让delegate代理来处理这些系统事件。
举例说几个代理方法
- application:willFinishLaunchingWithOptions: - 这个方法是在启动时的第一次机会来执行代码
- application:didFinishLaunchingWithOptions: - 这个方法允许在显示app给用户之前执行最后的初始化操作
- applicationDidBecomeActive: - app已经切换到active状态后需要执行的操作
- applicationWillResignActive: - app将要从前台切换到后台时需要执行的操作
- applicationDidEnterBackground: - app已经进入后台后需要执行的操作
- applicationWillEnterForeground: - app将要从后台切换到前台需要执行的操作,但app还不是active状态
- applicationWillTerminate: - app将要结束时需要执行的操作
- applicationDidReceiveMemoryWarning: -app接收到内存警告时调用
整个应用程序的生命周期如下。
1.触发app
2.然后到main函数执行
3.通过UIApplicationMain函数,初始化UIApplication对象
4.并且为他设置代理对象AppDelegate。
5.接着会建立应用程序的Main Runloop(事件循环),进行事件的处理(首先会在程序完毕后调用delegate对象的application:didFinishLaunchingWithOptions:方法)
6.程序正常退出时UIApplicationMain函数才返回