跨模块、跨进程时如何保证正常读取首选项中的数据

涉及跨模块、跨进程场景时,A模块(进程)存储到首选项的数据,B模块(进程)获取不到,该如何处理?

HarmonyOS
2024-09-19 11:09:56
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

1、由于context不同,获取到的是不同的首选项实例,因此会导致在跨模块、多页面等场景下取不到数据。此时可以考虑通过单例类在EntryAbility中存一个全局的context,或者使用应用级context。

2、多进程一个进程读,一个进程写也会导致取不到数据,原因是两个进程的内存是不共享的,直接getSync是从内存拿的值,所以需要先清掉进程缓存,再重新读文件。即:先removePreferencesFromCache,再getPreferences。

分享
微博
QQ
微信
回复
2024-09-19 16:15:30
相关问题
HarmonyOS TaskPool使用首选项报错
282浏览 • 1回复 待解决
错误码15500000(首选项)如何处理?
1130浏览 • 1回复 待解决
首选项存储问题,为什么会报错?
148浏览 • 1回复 待解决
HarmonyOS 用户首选项是线程安全
227浏览 • 1回复 待解决
首选项获取实例,实例是否为单例
1843浏览 • 1回复 待解决
如何跨进程调用其他应用服务
1551浏览 • 1回复 待解决