简述AppDelegate 的生命周期?从后台到前台调用了哪些方法?从前台到后台调用了哪些方法?第一次启动调用了哪些方法 ?
参考答案:
AppDelegate在iOS应用中的生命周期与应用程序的生命周期紧密相关。在iOS 13之前,AppDelegate全权处理App生命周期和UI生命周期。但在iOS 13及之后的版本中,AppDelegate的职责有所变化,主要负责处理App生命周期,而UI的生命周期则交由新增的Scene Delegate处理。
关于AppDelegate从后台到前台调用的方法,主要有两个:
applicationWillEnterForeground(application: UIApplication)
: 当应用程序从后台将要进入前台时调用。在这个方法中,我们通常会取消在程序进入后台时执行的操作,如重新开启定时器、继续播放视频或音频、继续游戏等。applicationDidBecomeActive(application: UIApplication)
: 当应用程序已经从后台回到前台,或者从非活跃状态变为活跃状态时调用。在这个方法中,同样会根据情况去开启定时器、继续播放视频或音频、继续游戏等。
从前台到后台时,AppDelegate调用的主要方法是applicationWillResignActive(application: UIApplication)
。当应用程序即将从活跃状态转为非活跃状态时(例如,用户锁屏或按下Home键使应用进入后台),这个方法会被调用。在这个方法中,我们通常会暂停正在执行的任务,让时间计时器失效等。
当应用程序第一次启动时,AppDelegate调用的方法主要是application(_:didFinishLaunchingWithOptions:)
。这个方法在程序第一次运行并且将要显示窗口的时候执行。在该方法中,我们通常会完成以下操作:
- 创建一个窗口对象,并将其指定为程序的主窗口。
- 执行其他需要在应用程序启动时进行的初始化操作。
需要注意的是,随着iOS版本的更新,AppDelegate的职责和生命周期可能会有所变化。因此,开发者需要时刻关注最新的iOS开发文档,以确保正确地理解和使用AppDelegate。