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

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

阅读 566
1 个回答

应用首次调用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
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进