iOS App's Life Cycle 生命周期简记
生命周期
理解App的生命周期至关重要, 在App当下的状态(处于foreground或者background)决定了调用的资源,
以及其优先性. 根据App状态的改变, 我们需要随之合理更改App的行为. 如:
在 application(_:didFinishLaunchingWithOptions:) 中加入UI的创建
每当App的状态改变, UIKit会调用delegate中的对象进行通知:
- iOS13后 使用UISceneDelegate
- iOS12前 使用UIApplicationDelegate
iOS12
当一个iOS12 App启动时所发生的调用顺序:
1 | application(_:willFinishLaunchingWithOptions:) |
当iOS App被Terminate时:
1 | applicationWillResignActive(_:) |
iOS13
iOS13中通过 UIWindowSceneDelegate 支持多窗口特性. 所以生命周期也会有所不同.
项目中如果使用了UISceneDelegate, 在App delegate中会有
1 | configurationForConnectingSceneSession |
这个method, 因而UIApplication不会发送前后台信息给App delegate,
这也意味着以下methods不会运行:
1 | applicationDidBecomeActive(_:) |
但App delegate会依旧接收这两个method的调用,
所以加入的代码也都会运行.
1 | application(_:willFinishLaunchingWithOptions:) |
官方指引: Link