写点什么

健康运动 app(2)

作者:鸿蒙之旅
  • 2023-05-09
    广东
  • 本文字数:2119 字

    阅读完需:约 7 分钟

这里面,我们首先要使用的是首选项


首选项为应用提供 Key-Value 键值型的数据处理能力,支持应用持久化轻量级数据,并对其修改和查询。


使用的时候首先导入

导入模块

import data_preferences from '@ohos.data.preferences';
复制代码


然后获取获取 context,由于目前主推 Stage,所以这里给出 Stage 模型示例:


如下所示,我们就获取了 Preferences 实例


import UIAbility from '@ohos.app.ability.UIAbility';
let preferences = null;
class EntryAbility extends UIAbility { onWindowStageCreate(windowStage) { try { let promise = data_preferences.getPreferences(this.context, 'mystore'); promise.then((object) => { preferences = object; console.info("Succeeded in getting preferences."); }).catch((err) => { console.info("Failed to get preferences. code =" + err.code + ", message =" + err.message); }) } catch(err) { console.info("Failed to get preferences. code =" + err.code + ", message =" + err.message); } }}
复制代码


使用完之后,我们需要移除的时候,调用如下接口就可以使用 Promise 异步回调,从内存中移除指定的 Preferences 实例。

data_preferences.deletePreferences

import UIAbility from '@ohos.app.ability.UIAbility';class EntryAbility extends UIAbility {    onWindowStageCreate(windowStage) {        try{            let promise = data_preferences.deletePreferences(this.context, 'mystore');            promise.then(() => {                console.info("Succeeded in deleting preferences.");            }).catch((err) => {                console.info("Failed to delete preferences. code =" + err.code + ", message =" + err.message);            })        } catch(err) {            console.info("Failed to delete preferences. code =" + err.code + ", message =" + err.message);        }    }}
复制代码


当我们需要使用 Promise 异步回调,从内存中移除指定的 Preferences 实例就调用下面的接口,调用该接口后,应用不允许再使用该 Preferences 实例进行数据操作,否则会出现数据一致性问题。

data_preferences.removePreferencesFromCache

import UIAbility from '@ohos.app.ability.UIAbility';
class EntryAbility extends UIAbility { onWindowStageCreate(windowStage) { try { let promise = data_preferences.removePreferencesFromCache(this.context, 'mystore'); promise.then(() => { console.info("Succeeded in removing preferences."); }).catch((err) => { console.info("Failed to remove preferences. code =" + err.code + ", message =" + err.message); }) } catch(err) { console.info("Failed to remove preferences. code =" + err.code + ", message =" + err.message); } }}
复制代码


然后我们就可以使用 Preferences 存储实例,提供获取和修改存储数据的接口。

Preferences

get

获取键对应的值,如果值为 null 或者非默认值类型,返回默认数据 defValue,使用 Promise 异步回调。


try {    let promise = preferences.get('startup', 'default');    promise.then((data) => {        console.info("Succeeded in getting value of 'startup'. Data: " + data);    }).catch((err) => {        console.info("Failed to get value of 'startup'. code =" + err.code + ", message =" + err.message);    })} catch(err) {    console.info("Failed to get value of 'startup'. code =" + err.code + ", message =" + err.message);}
复制代码

getAll

try {    let promise = preferences.getAll();    promise.then((value) => {        let allKeys = Object.keys(value);        console.info('getAll keys = ' + allKeys);        console.info("getAll object = " + JSON.stringify(value));    }).catch((err) => {        console.info("Failed to get all key-values. code =" + err.code + ", message =" + err.message);    })} catch (err) {    console.info("Failed to get all key-values. code =" + err.code + ", message =" + err.message);}
复制代码

put

将数据写入 Preferences 实例,可通过flush将 Preferences 实例持久化,使用 Promise 异步回调。


()try {    let promise = preferences.put('startup', 'auto');    promise.then(() => {        console.info("Succeeded in putting value of 'startup'.");    }).catch((err) => {        console.info("Failed to put value of 'startup'. code =" + err.code +", message =" + err.message);    })} catch(err) {    console.info("Failed to put value of 'startup'. code =" + err.code +", message =" + err.message);}
复制代码


发布于: 2023-05-09阅读数: 72
用户头像

鸿蒙之旅

关注

还未添加个人签名 2022-10-26 加入

还未添加个人简介

评论

发布
暂无评论
健康运动app(2)_OpenHarmony_鸿蒙之旅_InfoQ写作社区