点击App以后

点击App以后_第1张图片
点击App以后~.jpg

App启动的完整过程

  1. main函数
  2. UIApplicationMain函数
  3. 创建UIApplication对象
  4. 创建UIApplication的delegate对象
  5. delegate对象开始处理(监听)系统事件
  6. 程序启动完毕就会调用代理的application:didFinishLaunchingWithOptions: 方法
  7. 在application:didFinishiLaunchingWithOptions:中创建UIWindow
  8. 创建和设置UIWindow的rootViewController
  9. 显示窗口
  10. 如果有storyboard,则根据Info.plist获得最主要storyboard的文件名,加载最主要的storyboard
    1. 创建UIWindow
    2. 创建和设置UIWindow的rootViewController
    3. 显示窗口

AppDelegate的代理方法

//程序已经启动完成
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  ;
//程序将要失去焦点
- (void)applicationWillResignActive:(UIApplication *)application ;
//程序已经进入后台
- (void)applicationDidEnterBackground:(UIApplication *)application ;
//程序将要进入前台
- (void)applicationWillEnterForeground:(UIApplication *)application ;
//程序已经获得焦点
- (void)applicationDidBecomeActive:(UIApplication *)application ;
//内存警告,可能要终止程序,清除不需要再使用的内存
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application ;
//程序将要退出
- (void)applicationWillTerminate:(UIApplication *)application ;

AppDelegate不同情景下的加载顺序

  • 程序启动:依次调用已经启动完成方法和已经获得焦点方法
  • 程序从前台退出到后台:依次调用将要失去焦点方法和已经进入后台方法
  • 程序从后台进入到前台:依次调用将要进入前台方法和已经获得焦点方法
  • 双击Home键切换程序:双击Home键时会调用将要失去焦点方法,选择其他应用时会调用已经进入后台方法
  • 在前台双击Home键杀死程序:双击Home键时会调用将要失去焦点方法,上滑杀死程序时会调用已经进入后台方法和将要退出方法
  • 从其他程序前台双击Home键杀死程序:只会调用将要退出方法
  • 下拉通知栏或上拉工具栏:只会调用将要失去焦点方法

你可能感兴趣的:(点击App以后)