从设备开机说起:~
-
当用户打开iPhone,除了操作系统的App在运行时没有其他的App在运行。当用户点击App图标,
SpringBoard
会来启动的App。SpringBoard
是一个系统标准的应用程序来管理iPhone的主屏幕(home screen
)。也包括管理窗口服务、启动应用程序和一些设备的设置问题。
-
当
SpringBoard
打开App的启动屏幕(launch screen
)时,系统会加载你的App和必要的相关的库到内存中。最后你的App会开始执行并且应用委托(application delegate, AppDelegate
)会收到通知。AppDelegate
是一个委托对象。继承自UIResponder
类,并且实现UIApplicationDelegate
委托协议
-
iOS App的入口是
UIApplicationDelegate
。这是一个协议,并且你需要在你的App里实现它,这一你可以得到程序启动、转入后台/前台等等。 -
UIResponder
类使AppDelegate
可以对用户行为进行响应。并且UIApplicationDelegate
可以使AppDelegate
成为一个应用委托的对象来管理和回应应用程序的生命周期。
Apps的执行状态:-
- 未运行状态(
Not Running state
): app 还未被运行或者被系统终止 - 未激活状态(
Inactive state
): app 正要进入前台,但是没有收到事件 - 激活状态(
Active state
): app 进入前台并且可以处理事件 - 后台状态(
Background state
): 在这种状态下,如果有正在执行的代码,那么会继续执行;如果没有执行的代码抑或是执行完毕,那么app会被悬挂。 - 悬挂状态(
Suspended state
): app 在后台(也就死在内存)但是没有执行的代码,并且系统如果没有足够多的内存,那么会终止app
今天的文章iOS – App的生存周期分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/16560.html