跳转至

organizing lifecycle

组件生命周期

在组件拓扑中添加和移除组件实例时,会创建和销毁组件实例。这可以通过以下两种方式之一发生:

  • 静态地:该实例在组件清单中被声明为树中另一个组件的子组件。静态组件仅当一个更新改变了组件拓扑时才会创建和销毁。
  • 动态地:实例在运行时使用 fuchsia.component.Realm 协议在组件 collection 中添加或移除。动态组件在系统关闭时销毁。

一旦组件被销毁,框架就会移除它的持久状态(比如本地存储)。

当一个组件尝试打开到另一组件的通道时(这称为绑定(binding)),框架会启动后者的一个组件实例。当连接到由组件所暴露的能力时,绑定会隐式发生。对已经启动的组件进行绑定,会连接到其当前运行的实例。

组件可能会通过退出程序(由组件的 runner 定义)自行停止,或者可能由框架在系统关闭时停止。在被销毁之前,框架将组件移动到关闭状态以表示它不能再次启动。

该图显示了组件如何具有两种不同的状态:实例和执行。这些状态描述了“组件生命周期”。{: width="662"}

注意:要获取关于组件状态和执行的更多详细信息,请参阅组件生命周期


最后更新: 2022 年 12 月 31 日(Saturday) 21:07 CST