简单 UI

iOS App

官方文档:

一个参考了一个有趣的博客:

一个 iOS 的声明周期中会有以下的五种状态,下图列举官网中对这五种状态之间切换的示例:

../AppLifeCycle.png

这些声明周期的转换中也有一些相关的 HOOK 函数,那下图这个流程中的编号举例子:

../AppLifeCycleDelegate.png

  1. 这个变换流程中,有两个声明周期函数:

    • willFinishLaunchingWithOptions:如果你的程序启动成功的话,这个是整个应用第一次执行的代码;
    • didFinishLaunchingWithOptions:在屏幕上即将显示任何画面之前执行的函数;
  2. 在程序进入 Active 状态之后,会执行:applicationDidBecomeActive

  3. applicationWillResignActive:当用户点击了 Home 键或者启动了其他应用程序之后,会执行这个函数;与此同时,系统还会发出一个信号 UIApplicationWillResignActiveNotification

  4. applicationDidEnterBackground:在上面的一个流程之后,程序会从 Inactive 状态进入 Background 状态,同时触发这个 hook 函数;

  5. applicationWIllEnterForeground:如果应用程序在被操作系统杀死之前,再次被打开进入 Foregound,则会触发这个 hook 函数;

  6. Backgound -> Suspended

  7. Suspended -> Backgound

    如果应用进入后台后 5s 不执行任何计算任务,操作系统则会把它置为暂停状态;相反则会回到后台状态。那是这两个状态之间的切换对程序员是透明的,也就是说无法 HOOK 到这两个状态的切换。

  8. applicationWillTerminate:如果应用程序在后台时,就被操作系统杀死了,则会触发这个函数;