往期鸿蒙全套实战文章必看:(文中附带全栈鸿蒙学习资料)
@ohos.app.ability.ChildProcessArgs
传递到子进程的参数。childProcessManager启动子进程时,可以通过ChildProcessArgs传递参数到子进程中。
说明
本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
本模块接口仅可在Stage模型下使用。
导入模块
import { ChildProcessArgs } from '@kit.AbilityKit';
属性
系统能力:SystemCapability.Ability.AbilityRuntime.Core
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
| entryParams | string | 否 | 开发者自定义参数,透传到子进程中。可以在ChildProcess.onStart方法中通过args.entryParams获取,entryParams支持传输的最大数据量为150KB。 |
| fds | Record<string, number> | 否 | 文件描述符句柄集合,用于主进程和子进程通信,通过key-value的形式传入到子进程中,其中key为自定义字符串,value为文件描述符句柄。可以在ChildProcess.onStart方法中通过args.fds获取fd句柄。 说明: - fds最多支持16组,每组key的最大长度为20字符。 - 传递到子进程中句柄数字可能会变,但是指向的文件是一致的。 |
示例:
示例中的context的获取方式。
// 主进程中:
import { common, ChildProcessArgs, childProcessManager } from '@kit.AbilityKit';
import fs from '@ohos.file.fs';
let context = getContext(this) as common.UIAbilityContext;
let path = context.filesDir + "/test.txt";
let file = fs.openSync(path, fs.OpenMode.READ_ONLY | fs.OpenMode.CREATE);
let args: ChildProcessArgs = {
entryParams: "testParam",
fds: {
"key1": file.fd
}
};
childProcessManager.startArkChildProcess("entry/./ets/process/DemoProcess.ets", args);
// 子进程中:
import { ChildProcess, ChildProcessArgs } from '@kit.AbilityKit';
export default class DemoProcess extends ChildProcess {
onStart(args?: ChildProcessArgs) {
let entryParams = args?.entryParams;
let fd = args?.fds?.key1;
// ..
}
}


774

被折叠的 条评论
为什么被折叠?



