文档管理中心
您当前正在浏览HarmonyOS最新文档,覆盖已发布的所有API版本,可在API参考中筛选您使用的API版本。详细的版本配套关系请参考版本说明
开发与测试开放能力API应用框架Ability Kit(程序框架服务)ArkTS APIStage模型能力的接口@ohos.app.ability.ChildProcessArgs (子进程参数)

@ohos.app.ability.ChildProcessArgs (子进程参数)

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

传递到子进程的参数。childProcessManager启动子进程时,可以通过ChildProcessArgs传递参数到子进程中。

说明

本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

本模块接口仅可在Stage模型下使用。

导入模块

收起
自动换行
深色代码主题
复制
  1. import { ChildProcessArgs } from '@kit.AbilityKit';

ChildProcessArgs

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

系统能力:SystemCapability.Ability.AbilityRuntime.Core

展开
名称 类型 只读 可选 说明
entryParams string 开发者自定义参数,透传到子进程中。可以在ChildProcess.onStart方法中通过args.entryParams获取,不传入时子进程无法获取开发者自定义参数。entryParams通过IPC传输,IPC传输的数据量最大为200KB(详见约束与限制),其中部分由系统占用,建议entryParams传入数据量不超过150KB,否则可能导致创建子进程失败。
fds Record<string, number>

文件描述符句柄集合,用于主进程和子进程通信,不传入时子进程无法获取主进程传递的文件句柄。该参数通过key-value的形式传入到子进程中,其中key为自定义字符串,value为文件描述符句柄。可以在ChildProcess.onStart方法中通过args.fds获取fd句柄。

说明:

- fds最多支持16组,每组key的最大长度为20字符。

- 传递到子进程中的句柄数字可能会变,但是指向的文件是一致的。

示例:

示例中的context的获取方式请参见获取UIAbility的上下文信息

收起
自动换行
深色代码主题
复制
  1. // 主进程中:
  2. import { common, ChildProcessArgs, childProcessManager } from '@kit.AbilityKit';
  3. import { fileIo } from '@kit.CoreFileKit';
  4. @Entry
  5. @Component
  6. struct Index {
  7. build() {
  8. Row() {
  9. Column() {
  10. Text('Click')
  11. .fontSize(30)
  12. .fontWeight(FontWeight.Bold)
  13. .onClick(() => {
  14. let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
  15. let path = context.filesDir + '/test.txt';
  16. let file = fileIo.openSync(path, fileIo.OpenMode.READ_ONLY | fileIo.OpenMode.CREATE);
  17. let args: ChildProcessArgs = {
  18. entryParams: 'testParam',
  19. fds: {
  20. 'key1': file.fd
  21. }
  22. };
  23. childProcessManager.startArkChildProcess('entry/./ets/process/DemoProcess.ets', args);
  24. });
  25. }
  26. .width('100%')
  27. }
  28. .height('100%')
  29. }
  30. }
收起
自动换行
深色代码主题
复制
  1. // 子进程中:
  2. import { ChildProcess, ChildProcessArgs } from '@kit.AbilityKit';
  3. export default class DemoProcess extends ChildProcess {
  4. onStart(args?: ChildProcessArgs) {
  5. let entryParams = args?.entryParams;
  6. let fd = args?.fds?.key1;
  7. // ...
  8. }
  9. }
在 开发与测试 开放能力API 中进行搜索
请输入您想要搜索的关键词