harmony 鸿蒙@ohos.app.ability.ChildProcessArgs (子进程参数)
@ohos.app.ability.ChildProcessArgs (子进程参数)
传递到子进程的参数。childProcessManager启动子进程时,可以通过ChildProcessArgs传递参数到子进程中。
说明:
本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
本模块接口仅可在Stage模型下使用。
导入模块
import { ChildProcessArgs } from '@kit.AbilityKit';
ChildProcessArgs
系统能力:SystemCapability.Ability.AbilityRuntime.Core
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
entryParams | string | 否 | 开发者自定义参数,透传到子进程中。可以在ChildProcess.onStart方法中通过args.entryParams获取,entryParams支持传输的最大数据量为150KB。 |
fds | Record |
否 | 文件描述符句柄集合,用于主进程和子进程通信,通过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;
// ..
}
}
你可能感兴趣的鸿蒙文章
harmony 鸿蒙OH_NativeBundle_ApplicationInfo
harmony 鸿蒙OH_NativeBundle_ElementName
harmony 鸿蒙ability_base_common.h
0
赞
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦