学计算机的那个

不是我觉到、悟到,你给不了我,给了也拿不住;只有我觉到、悟到,才有可能做到,能做到的才是我的.

0%

程序的生命周期

前言

对App的生命周期和相关的方法触发做个笔记。

程序的生命周期

应用程序的状态:

  • Not running未运行:程序没启动。
  • Inactive未激活:程序在前台运行,不过没有接收到事件。在没有事件处理情况下程序通常停留在这个状态。
  • Active激活:程序在前台运行而且接收到了事件。这也是前台的一个正常的模式。
  • Backgroud后台:程序在后台而且能执行代码,大多数程序进入这个状态后会在在这个状态上停留一会。时间到之后会进入挂起状态(Suspended)。有的程序经过特殊的请求后可以长期处于Backgroud状态。
  • Suspended挂起:程序在后台不能执行代码。系统会自动把程序变成这个状态而且不会发出通知。当挂起时,程序还是停留在内存中的,当系统内存低时,系统就把挂起的程序清除掉,为前台程序提供更多的内存。

生命周期:

  • application didFinishLaunchingWithOptions:当应用程序启动时执行,应用程序启动入口,只在应用程序启动时执行一次。若用户直接启动,lauchOptions内无数据,若通过其他方式启动应用,lauchOptions包含对应方式的内容。
  • applicationWillResignActive:在应用程序将要由活动状态切换到非活动状态时候,要执行的委托调用,如 按下 home 按钮,返回主屏幕,或全屏之间切换应用程序等。
  • applicationDidEnterBackground:在应用程序已进入后台程序时,要执行的委托调用。
  • applicationWillEnterForeground:在应用程序将要进入前台时(被激活),要执行的委托调用,刚好与applicationWillResignActive 方法相对应。
  • applicationDidBecomeActive:在应用程序已被激活后,要执行的委托调用,刚好与applicationDidEnterBackground 方法相对应。
  • applicationWillTerminate:在应用程序要完全推出的时候,要执行的委托调用,这个需要要设置UIApplicationExitsOnSuspend的键值。

方法触发

  • 初次启动:
1
2
3
iOS_didFinishLaunchingWithOptions

iOS_applicationDidBecomeActive
  • 按下home键:
1
2
3
iOS_applicationWillResignActive

iOS_applicationDidEnterBackground
  • 点击程序图标进入:
1
2
3
iOS_applicationWillEnterForeground

iOS_applicationDidBecomeActive
  • 点击通知进入:
1
applicationWillEnterForeground application:didReceiveRemoteNotification applicationDidBecomeActive
  • 从其他APP切回来
1
applicationWillEnterForeground application:openURL:sourceApplication applicationDidBecomeActive

图片说明