智能客服
你问我答,随时在线为你解决问题

























传递到子进程的参数。childProcessManager启动子进程时,可以通过ChildProcessArgs传递参数到子进程中。
本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
本模块接口仅可在Stage模型下使用。
- import { ChildProcessArgs } from '@kit.AbilityKit';
系统能力: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的上下文信息。
- // 主进程中:
- import { common, ChildProcessArgs, childProcessManager } from '@kit.AbilityKit';
- import { fileIo } from '@kit.CoreFileKit';
-
- @Entry
- @Component
- struct Index {
- build() {
- Row() {
- Column() {
- Text('Click')
- .fontSize(30)
- .fontWeight(FontWeight.Bold)
- .onClick(() => {
- let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
- let path = context.filesDir + '/test.txt';
- let file = fileIo.openSync(path, fileIo.OpenMode.READ_ONLY | fileIo.OpenMode.CREATE);
- let args: ChildProcessArgs = {
- entryParams: 'testParam',
- fds: {
- 'key1': file.fd
- }
- };
- childProcessManager.startArkChildProcess('entry/./ets/process/DemoProcess.ets', args);
- });
- }
- .width('100%')
- }
- .height('100%')
- }
- }
- // 子进程中:
- import { ChildProcess, ChildProcessArgs } from '@kit.AbilityKit';
-
- export default class DemoProcess extends ChildProcess {
-
- onStart(args?: ChildProcessArgs) {
- let entryParams = args?.entryParams;
- let fd = args?.fds?.key1;
- // ...
- }
- }
智能客服
你问我答,随时在线为你解决问题
合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
解决方案
精准高效的一站式服务支持,助力开发者商业成功