赞
踩
用户首选项(Preferences):以文本的形式保存数据,使用时数据会加载到内存中,范围速度快,效率高,但是不适合存储大量数据。
通过Preferences 提供接口,将持久化文件加载Preferences实例中,每一个文件对应一个Preferences 实例,系统会将Preferences实例存储在内存中,达到快速,高效访问的效果。
键必须为string 类型,不能为空并且长度小于80个字节。
值(Value)为string 类型时,可以为空,最大限制为 8192个字节。
存储数据不要超过1万条,否则会造成内存较大开销。
get(获取)
has(判断是否存在)
put(写入)
delete(时删除)
flush(持久化到文件)
on(订阅数据变更)
off(取消订阅)
-
- import preferences from '@ohos.data.preferences';
-
- const STORE_NAME = "baseInfo"
-
- let context = getContext(this)
- let preference: preferences.Preferences
-
- class PreferenceUtil {
- // 初始化对象
- async getPreferences() {
- try {
- preference = await preferences.getPreferences(context, STORE_NAME)
- }
- catch (err) {
- console.error(`error:${err}`)
- }
- }
-
- /**
- * 删除所有的preferences对象
- */
- async deletePreferences() {
- try {
- await preferences.deletePreferences(context, STORE_NAME);
- } catch(err) {
- console.error('TAG', `Failed to delete preferences, Cause: ${err}`);
- };
- }
-
- // 写入preference数据
- async putPreference(key: string, value: string) {
- if (!key || !value) {
- return
- }
-
- if (!preference) {
- await this.getPreferences();
- }
- // 将数据保存到首选项,内存中
- try {
- await preference.put(key, value);
- } catch (err) {
- console.error('TAG', `Failed to put value, Cause: ${err}`);
- }
- // 【数据持久化,写入文件】Store the Preference instance in the preference persistence file
- await preference.flush();
- }
-
- /**
- * 获取preference对象
- */
- async getPreference(key: string) {
- if (!key) {
- return
- }
-
- let value: number | string | boolean | Array<number> | Array<string> | Array<boolean>;
- if (!preference) {
- await this.getPreferences();
- }
- try {
- value = await preference.get(key, '')
- } catch (err) {
- console.error('TAG', `Failed to get value, Cause: ${err}`)
- }
-
- if (value === '') {
- return
- }
-
- return value;
- }
- }
-
- export default new PreferenceUtil();
-
- import userInfoStrong from '../../utils/preferencesStrong'
-
- this.userInfo = {
- name: this.nickname,
- sex: this.sex,
- sign: this.signature,
- date: this.birthdate,
- hobbies: this.hobbies,
- }
-
- // 保存数据
- userInfoStrong.putPreference('userInfo', JSON.stringify(this.userInfo))
-
- // 异步获取保存的数据
- userInfoStrong.getPreference('userInfo').then((res) => {
- this.userInfo = res && JSON.parse(res) as userInfoType
-
- const { name, sex, sign, date, hobbies } = this.userInfo;
-
- this.nickname = name;
- this.sex = sex;
- this.signature = sign;
- this.birthdate = date;
- this.hobbies = hobbies;
- })
-
- // 清除所有的数据
- userInfoStrong.deletePreferences()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。