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

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

阅读 574
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
}