HarmonyOS 用户首选项在拉起app访问不到,杀进程重新进入app后可访问到

HarmonyOS
7天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

应用首次调用getPreferences接口获取某个Preferences实例后,该实例会被会被缓存起来,后续再次getPreferences时不会再次从持久化文件中读取,直接从缓存中获取Preferences实例

export function initPreferenceTool(paramContext: common.Context){
  context = paramContext
  let observer = (key: string) => {
    console.info("The key " + key + " changed.");
    dataPreferences.removePreferencesFromCacheSync(context, options);
    preferences = null
  }
  if (preferences  === null) {
    preferences = dataPreferences.getPreferencesSync(context, options);
  }
  preferences.on('multiProcessChange', observer);
}

export function getValue(key: string): string{
  if (preferences === null) {
    preferences = dataPreferences.getPreferencesSync(context, options);
  }
  return preferences.getSync(key, '') as string
}
分享
微博
QQ
微信
回复
7天前
相关问题
HarmonyOS 用户首选项是线程安全的吗
411浏览 • 1回复 待解决
首选项preferences相关
84浏览 • 1回复 待解决
HarmonyOS TaskPool使用首选项报错
514浏览 • 1回复 待解决
HarmonyOS 首选项回调失效
83浏览 • 1回复 待解决
HarmonyOS 获取首选项取值的方式
105浏览 • 1回复 待解决
HarmonyOS 首选项超长string存储失败
90浏览 • 1回复 待解决
HarmonyOS 创建首选项报错code:15500000
226浏览 • 1回复 待解决
HarmonyOS 首选项报错数据报错
98浏览 • 1回复 待解决
HarmonyOS 如何强制杀进程
417浏览 • 1回复 待解决
首选项存储问题,为什么会报错?
380浏览 • 1回复 待解决
HarmonyOS 模拟器使用首选项能力异常
196浏览 • 1回复 待解决