美文网首页
UIApplication - 03Delegate和生命周期

UIApplication - 03Delegate和生命周期

作者: js_huh | 来源:发表于2020-08-09 14:32 被阅读0次
    • UIApplication设置代理属性
      @property(nullable, nonatomic, assign) id<UIApplicationDelegate> delegate;

    • UIApplicationDelegate 对象是谁?

      • AppDelegate.h 遵循了代理协议UIApplicationDelegate
        @interface AppDelegate : UIResponder <UIApplicationDelegate>
      • AppDelegate.m实现了代理方法。
    • AppDelegate做什么用?

      • 处理应用程序的生命周期事件(如程序启动和关闭)
      • 处理系统事件(如来电)
      • 处理内存警告
      • ....

    • AppDelegate实现了协议,App生命周期的一些方法.
      - application: didFinishLaunchingWithOptions: - 应用程序启动完成的时候调用
      - applicationWillResignActive: - 当我们应用程序即将失去焦点的时候调用
      - applicationDidEnterBackground: - 当我们应用程序完全进入后台的时候调用
      - applicationWillEnterForeground: -当我们应用程序即将进入前台的时候调用
      - applicationDidBecomeActive: - 当我们应用程序完全获取焦点的时候调用, 只有当一个应用程序完全获取到焦点,才能与用户交互.
      - applicationWillTerminate: - 当我们应用程序即将关闭的时候调用
      - applicationDidReceiveMemoryWarning: - 当应用程序收到内存警告时调用
      
    • 方法的调用顺序
      • App刚启动时
        • didFinishLaunchingWithOptions - App启动完毕
        • applicationDidBecomeActive - App获取焦点(我能够和用户进行交互了)
      • 退出App, 进入后台时(CMD + shift + h)
        • applicationWillResignActive- 即将失去焦点
        • applicationDidEnterBackground- 进入后台
      • 再次点击App
        注意: 此时的App已在后台,并不是重新打开一个全新的App。
        • applicationWillEnterForeground - 即将进入前台
        • applicationDidBecomeActive - App获取焦点
      • 真正退出App (CMD + shift + h + h)
        • applicationWillResignActive - 即将失去焦点
        • applicationDidEnterBackground - 进入后台
        • applicationWillTerminate - App即将关闭
      • 收到内存警告时 (2次警告,第3次直接崩系统)
        • applicationDidReceiveMemoryWarning - 内存警告

    • 移动操作系统有个缺点,App很容易受到干扰。
      比如: 玩游戏的过程中,一个电话打进来。接完电话, 回过头玩游戏,需要从头开始。
      • 解决思路:
      • "退出App,进入后台"时,对游戏数据进行保存.
      • 打完电话,再次点击游戏时,也就是"即将进入前台 ,App获取焦点"时,将游戏数据进行恢复。

    相关文章

      网友评论

          本文标题:UIApplication - 03Delegate和生命周期

          本文链接:https://www.haomeiwen.com/subject/fahwrktx.html