#鸿蒙通关秘籍#在HarmonyOS Next中,如何封装@ohos.data.preferences模块简化数据存储?

HarmonyOS
9h前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
代码小博士

可以定义一个PreferencesUtils类将@ohos.data.preferences模块进行封装,从而简化数据存储操作:

  1. 定义PreferencesUtils类:

    export class PreferencesUtils {
      private preferencesName: string;
      private keyPreferences: string;
    
      constructor(
        name: string = 'PREFERENCES_NAME',
        keyP: string = 'KEY_PREFERENCES'
      ) {
        this.preferencesName = name;
        this.keyPreferences = keyP;
      }
    }
    
  2. 添加创建和获取Preferences实例的方法:

    async createPreferences(context: Context): Promise<dataPreferences.Preferences | null> {
      const preferences = await dataPreferences.getPreferences(context, this.preferencesName);
      GlobalContext.getContext().setObject(this.keyPreferences, preferences);
      return preferences;
    }
    
    async getPreferences(): Promise<dataPreferences.Preferences | null> {
      return GlobalContext.getContext().getObject(this.keyPreferences);
    }
    
  3. 提供数据操作的简化方法:

    async put(key: string, value: ValueType): Promise<void> {
      const preferences = await this.getPreferences();
      if (preferences) {
        await preferences.put(key, value);
        await preferences.flush();
      }
    }
    
    async get(key: string, def?: ValueType): Promise<ValueType> {
      const preferences = await this.getPreferences();
      return preferences ? await preferences.get(key, def) : def;
    }
    
  4. 实现全局异常处理和日志记录:

    每个方法中实施错误管理,通过try/catch捕获错误,并记录相关日志,确保能够及时应对运行时问题。

分享
微博
QQ
微信
回复
7h前
相关问题
HarmonyOS @ohos.data.preferences
462浏览 • 1回复 待解决
HarmonyOS @ohos.data.preferences 数据处理
185浏览 • 1回复 待解决