export class GlobalContext {
private constructor() { }
private static instance: GlobalContext;
private _objects = new Map<string, Object>();
public static getContext(): GlobalContext {
if (!GlobalContext.instance) {
GlobalContext.instance = new GlobalContext();
}
return GlobalContext.instance;
}
getObject(value: string): Object | undefined {
return this._objects.get(value);
}
setObject(key: string, objectClass: Object): void {
this._objects.set(key, objectClass);
}
}
在Entry 中 存值 GlobalContext.getContext().setObject(“windowStage”, windowStage)
在动态共享包中取值 let windowStage = GlobalContext.getContext().getObject(“windowStage”) as window.WindowStage 取不到
排查发现 GlobalContext.getContext() 获取到的不是一个实例,单例失效了
如何解决?
目前windowStage只在entryAbility的onwindowStageCreate中获取到,然后需要用APPStorage把windowStage拿出来。示例如下:
参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-appstorage-V5