HarmonyOS 如何构建跨动态库的单例?

(1)创建一个静态库 SingletonModel,提供一个单例对象。

(2)创建一个动态库 DynamicLib,并依赖静态库 SingletonModel,并提供一个方法调用 SingletonModel 的单例对象。

(3)entry同时依赖 SingletonModel 和 DynamicLib。

直接调用 SingletonModel 的单例,和通过DynamicLib调用的 SingletonModel 的单例是两个对象。

问题:这是预期的么?如何构造一个单例,让其经过动态库后不会生成额外的对象呢?

HarmonyOS
2024-10-31 10:18:13
浏览
已于2024-10-31 10:18:29修改
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

​由于当前har包和hsp包是内存隔离的,因此这种引用方式,实际在har包作为代码片段在hap和hsp包中各有一份,导致引用时并非用一个单例,当前有以下规避方式:

1.hap包不直接调用har包的单例,只通过hsp包调用这个单例。

2.将两个依赖包都改为har包。

3.将两个依赖包都改为hsp包​。

分享
微博
QQ
微信
回复
2024-10-31 17:03:53
相关问题
HarmonyOS 对象如何实现
410浏览 • 1回复 待解决
如何获取为undefined
446浏览 • 1回复 待解决
实现模式下数据存储
1022浏览 • 1回复 待解决
HarmonyOS 模式拿不到类对象
315浏览 • 1回复 待解决
HarmonyOS Entry和Hsp中创建失效
423浏览 • 1回复 待解决
创建换了页面后不生效问题
2178浏览 • 3回复 待解决
在hsp中存在多个情况
266浏览 • 1回复 待解决
ArkTS层实例化与介绍
2870浏览 • 1回复 待解决
关于文档中说har中不能用疑惑
1816浏览 • 1回复 待解决
首选项获取实例,实例是否为
1941浏览 • 1回复 待解决
HarmonyOS 动态引用问题
169浏览 • 1回复 待解决
提问
该提问已有0人参与 ,帮助了0人