协议
生命周期
在 fuchsia.process.lifecycle/lifecycle.fidl 中定义
组件可以实现生命周期协议,以接收生命周期通知 事件。它还可以将某个状态存储在框架中,以便重新传递给 组件(这种做法称为“托管”)。
ELF Runner 使用此协议来传达生命周期变更 ,要详细了解该组件如何使用此协议,请参见: https://fuchsia.dev/fuchsia-src/concepts/components/v2/elf_runner#lifecycle
OnEscrow
组件退出前不久的托管状态。
当 ELF 运行程序收到此事件时,它会按照
框架等待,直到组件的当前执行
然后在 ZX_CHANNEL_READABLE
加载完毕时再次启动组件
在 outgoing_dir
上观测到信号。
重复调用将替换旧的托管值。建议不要这样做。
通过 OnEscrow
托管的句柄始终会传递到下一个
组件执行情况
响应
名称 | 类型 |
---|---|
payload |
LifecycleOnEscrowRequest
|
停止
进程必须清理其状态以准备终止,并且
必须关闭托管 Lifecycle
协议的通道,
随时可以终止进程完成后应退出
清理。由系统自行决定,进程可能会终止
然后再关闭 Lifecycle
渠道。
请求
<空>
表
LifecycleOnEscrowRequest 资源
在 fuchsia.process.lifecycle/lifecycle.fidl 中定义
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
outgoing_dir |
server_end<fuchsia.io/Directory>
|
托管传出目录服务器端点。每当
组件再次启动后,系统会将其作为
|
2 |
escrowed_dictionary |
fuchsia.component.sandbox/DictionaryRef
|
托管某个用户定义的状态。每当组件启动时
该字段将作为 框架不会等待这些对象上的任何信号。 示例假设某个组件需要托管一个表示
一些高昂的计算结果。它可以创建
字典中,使用适当的键将事件对放入其中
(例如 |