UIApplication - 03Delegate和生命周期
作者:
js_huh | 来源:发表于
2020-08-09 14:32 被阅读0次
-
UIApplication
设置代理属性
@property(nullable, nonatomic, assign) id<UIApplicationDelegate> delegate;
-
UIApplication
的Delegate 对象
是谁?
-
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
网友评论