HarmonyOS鸿蒙Next中关于用户首选项和键值型数据库对象创建的问题

HarmonyOS鸿蒙Next中关于用户首选项和键值型数据库对象创建的问题

  1. 对于同一个用户首选项文件,如果短时间内多次调用(例如在Demo中用for循环调用)Preferences对象的获取方法(getPreferences(context: Context, name: string): Promise<Preferences>),那么在Promise中拿到的是同一个Preferences对象吗?还是会new出多个对象?这个过程会触发多次数据从文件读取到内存中吗?

  2. 类似的,对于同一个storeId的键值型数据库,如果短时间内多次调用(例如在Demo中用for循环调用)KVStore对象的获取方法(getKVStore<T>(storeId: string, options: Options): Promise<T>),那么在Promise中拿到的是同一个KVStore对象吗?还是会new出多个对象?这个过程会触发多次数据从文件读取到内存中吗?


更多关于HarmonyOS鸿蒙Next中关于用户首选项和键值型数据库对象创建的问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复
  1. 只有第一次是会读文件到缓存,后面再次获取,返回的js对象是新的,但是对应的c++对象是同一个,这个过程不会触发多次数据从文件读取到内存中

  2. 如果不关库的话,获得是一个KVStore对象, 这个过程不会触发多次数据从文件读取到内存中

更多关于HarmonyOS鸿蒙Next中关于用户首选项和键值型数据库对象创建的问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,用户首选项和键值型数据库的创建主要涉及以下内容:

用户首选项:

  • 用户首选项用于存储轻量级的键值对数据,通常用于保存应用配置、用户设置等。
  • 使用Preferences类进行数据操作,支持putgetdelete等方法。
  • 数据存储在本地,默认路径为/data/data/<package_name>/shared_prefs

键值型数据库:

  • 键值型数据库适用于存储结构化数据,支持增删改查操作。
  • 使用KVStore类进行数据管理,支持putgetdelete等方法。
  • 数据存储在本地或分布式环境中,支持跨设备数据同步。

创建流程如下:

  • 用户首选项:通过Preferences.getPreferences()获取实例,进行数据操作。
  • 键值型数据库:通过KVManager.createKVStore()创建数据库实例,进行数据操作。

注意事项:

  • 用户首选项适用于小规模数据存储,键值型数据库适用于大规模结构化数据存储。
  • 数据操作需在主线程外执行,避免阻塞UI线程。

在HarmonyOS鸿蒙Next中,用户首选项(Preferences)和键值型数据库(KV Store)是两种常见的数据存储方式。用户首选项适用于存储轻量级、结构简单的数据,如用户设置,通过DataAbilityHelperPreferences类进行管理。键值型数据库则适合存储更复杂的数据,支持分布式场景,通过KVManagerKVStore类进行操作。创建时需先获取相应实例,再进行数据的增删改查。开发者应根据具体需求选择合适的存储方式。

回到顶部