用户首选项

2024-01-23 16:08 更新

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

数据存储形式为键值对,键的类型为字符串型,值的存储数据类型包括数字型、字符型、布尔型以及这3种类型的数组类型。

说明

本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

  1. import dataPreferences from '@ohos.data.preferences';

常量

系统能力: SystemCapability.DistributedDataManager.Preferences.Core

名称

参数类型

可读

可写

说明

MAX_KEY_LENGTH

number

Key的最大长度限制为80个字节。

MAX_VALUE_LENGTH

number

Value的最大长度限制为8192个字节。

dataPreferences.getPreferences

getPreferences(context: Context, name: string, callback: AsyncCallback<Preferences>): void

获取Preferences实例,使用callback异步回调。

系统能力: SystemCapability.DistributedDataManager.Preferences.Core

参数:

参数名

类型

必填

说明

context

Context

应用上下文。

FA模型的应用Context定义见Context

Stage模型的应用Context定义见Context

name

string

Preferences实例的名称。

callback

AsyncCallback<Preferences>

回调函数。当获取Preferences实例成功,err为undefined,返回Preferences实例;否则err为错误对象。

示例:

FA模型示例:

  1. // 获取context
  2. import featureAbility from '@ohos.ability.featureAbility';
  3. let context = featureAbility.getContext();
  4. let preferences = null;
  5. try {
  6. dataPreferences.getPreferences(context, 'mystore', function (err, val) {
  7. if (err) {
  8. console.error("Failed to get preferences. code =" + err.code + ", message =" + err.message);
  9. return;
  10. }
  11. preferences = val;
  12. console.info("Succeeded in getting preferences.");
  13. })
  14. } catch (err) {
  15. console.error("Failed to get preferences. code =" + err.code + ", message =" + err.message);
  16. }

Stage模型示例:

  1. import UIAbility from '@ohos.app.ability.UIAbility';
  2. let preferences = null;
  3. class EntryAbility extends UIAbility {
  4. onWindowStageCreate(windowStage) {
  5. try {
  6. dataPreferences.getPreferences(this.context, 'mystore', function (err, val) {
  7. if (err) {
  8. console.error("Failed to get preferences. code =" + err.code + ", message =" + err.message);
  9. return;
  10. }
  11. preferences = val;
  12. console.info("Succeeded in getting preferences.");
  13. })
  14. } catch (err) {
  15. console.error("Failed to get preferences. code =" + err.code + ", message =" + err.message);
  16. }
  17. }
  18. }

dataPreferences.getPreferences

getPreferences(context: Context, name: string): Promise<Preferences>

获取Preferences实例,使用Promise异步回调。

系统能力: SystemCapability.DistributedDataManager.Preferences.Core

参数:

参数名

类型

必填

说明

context

Context

应用上下文。

FA模型的应用Context定义见Context

Stage模型的应用Context定义见Context

name

string

Preferences实例的名称。

返回值:

类型

说明

Promise<Preferences>

Promise对象,返回Preferences实例。

示例:

FA模型示例:

  1. // 获取context
  2. import featureAbility from '@ohos.ability.featureAbility';
  3. let context = featureAbility.getContext();
  4. let preferences = null;
  5. try {
  6. let promise = dataPreferences.getPreferences(context, 'mystore');
  7. promise.then((object) => {
  8. preferences = object;
  9. console.info("Succeeded in getting preferences.");
  10. }).catch((err) => {
  11. console.error("Failed to get preferences. code =" + err.code + ", message =" + err.message);
  12. })
  13. } catch(err) {
  14. console.error("Failed to get preferences. code =" + err.code + ", message =" + err.message);
  15. }

Stage模型示例:

  1. import UIAbility from '@ohos.app.ability.UIAbility';
  2. let preferences = null;
  3. class EntryAbility extends UIAbility {
  4. onWindowStageCreate(windowStage) {
  5. try {
  6. let promise = dataPreferences.getPreferences(this.context, 'mystore');
  7. promise.then((object) => {
  8. preferences = object;
  9. console.info("Succeeded in getting preferences.");
  10. }).catch((err) => {
  11. console.error("Failed to get preferences. code =" + err.code + ", message =" + err.message);
  12. })
  13. } catch(err) {
  14. console.error("Failed to get preferences. code =" + err.code + ", message =" + err.message);
  15. }
  16. }
  17. }

dataPreferences.deletePreferences

deletePreferences(context: Context, name: string, callback: AsyncCallback<void>): void

从内存中移除指定的Preferences实例,使用callback异步回调。

若Preferences实例有对应的持久化文件,则同时删除其持久化文件。

调用该接口后,应用不允许再使用该Preferences实例进行数据操作,否则会出现数据一致性问题。

系统能力: SystemCapability.DistributedDataManager.Preferences.Core

参数:

参数名

类型

必填

说明

context

Context

应用上下文。

FA模型的应用Context定义见Context

Stage模型的应用Context定义见Context

name

string

Preferences实例的名称。

callback

AsyncCallback<void>

回调函数。当移除成功,err为undefined,否则为错误对象。

错误码:

以下错误码的详细介绍请参见用户首选项错误码

错误码ID

错误信息

15500010

Failed to delete preferences.

示例:

FA模型示例:

  1. // 获取context
  2. import featureAbility from '@ohos.ability.featureAbility';
  3. let context = featureAbility.getContext();
  4. try {
  5. dataPreferences.deletePreferences(context, 'mystore', function (err) {
  6. if (err) {
  7. console.error("Failed to delete preferences. code =" + err.code + ", message =" + err.message);
  8. return;
  9. }
  10. console.info("Succeeded in deleting preferences." );
  11. })
  12. } catch (err) {
  13. console.error("Failed to delete preferences. code =" + err.code + ", message =" + err.message);
  14. }

Stage模型示例:

  1. import UIAbility from '@ohos.app.ability.UIAbility';
  2. class EntryAbility extends UIAbility {
  3. onWindowStageCreate(windowStage) {
  4. try {
  5. dataPreferences.deletePreferences(this.context, 'mystore', function (err) {
  6. if (err) {
  7. console.error("Failed to delete preferences. code =" + err.code + ", message =" + err.message);
  8. return;
  9. }
  10. console.info("Succeeded in deleting preferences." );
  11. })
  12. } catch (err) {
  13. console.error("Failed to delete preferences. code =" + err.code + ", message =" + err.message);
  14. }
  15. }
  16. }

dataPreferences.deletePreferences

deletePreferences(context: Context, name: string): Promise<void>

从内存中移除指定的Preferences实例,使用Promise异步回调。

若Preferences实例有对应的持久化文件,则同时删除其持久化文件。

调用该接口后,应用不允许再使用该Preferences实例进行数据操作,否则会出现数据一致性问题。

系统能力: SystemCapability.DistributedDataManager.Preferences.Core

参数:

参数名

类型

必填

说明

context

Context

应用上下文。

FA模型的应用Context定义见Context

Stage模型的应用Context定义见Context

name

string

Preferences实例的名称。

返回值:

类型

说明

Promise<void>

无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见用户首选项错误码

错误码ID

错误信息

15500010

Failed to delete preferences.

示例:

FA模型示例:

  1. // 获取context
  2. import featureAbility from '@ohos.ability.featureAbility';
  3. let context = featureAbility.getContext();
  4. try {
  5. let promise = dataPreferences.deletePreferences(context, 'mystore');
  6. promise.then(() => {
  7. console.info("Succeeded in deleting preferences.");
  8. }).catch((err) => {
  9. console.error("Failed to delete preferences. code =" + err.code + ", message =" + err.message);
  10. })
  11. } catch(err) {
  12. console.error("Failed to delete preferences. code =" + err.code + ", message =" + err.message);
  13. }

Stage模型示例:

  1. import UIAbility from '@ohos.app.ability.UIAbility';
  2. class EntryAbility extends UIAbility {
  3. onWindowStageCreate(windowStage) {
  4. try{
  5. let promise = dataPreferences.deletePreferences(this.context, 'mystore');
  6. promise.then(() => {
  7. console.info("Succeeded in deleting preferences.");
  8. }).catch((err) => {
  9. console.error("Failed to delete preferences. code =" + err.code + ", message =" + err.message);
  10. })
  11. } catch(err) {
  12. console.error("Failed to delete preferences. code =" + err.code + ", message =" + err.message);
  13. }
  14. }
  15. }

dataPreferences.removePreferencesFromCache

removePreferencesFromCache(context: Context, name: string, callback: AsyncCallback<void>): void

从内存中移除指定的Preferences实例,使用callback异步回调。

调用该接口后,应用不允许再使用该Preferences实例进行数据操作,否则会出现数据一致性问题。

系统能力: SystemCapability.DistributedDataManager.Preferences.Core

参数:

参数名

类型

必填

说明

context

Context

应用上下文。

FA模型的应用Context定义见Context

Stage模型的应用Context定义见Context

name

string

Preferences实例的名称。

callback

AsyncCallback<void>

回调函数。当移除成功,err为undefined,否则为错误对象。

示例:

FA模型示例:

  1. // 获取context
  2. import featureAbility from '@ohos.ability.featureAbility';
  3. let context = featureAbility.getContext();
  4. try {
  5. dataPreferences.removePreferencesFromCache(context, 'mystore', function (err) {
  6. if (err) {
  7. console.error("Failed to remove preferences. code =" + err.code + ", message =" + err.message);
  8. return;
  9. }
  10. console.info("Succeeded in removing preferences.");
  11. })
  12. } catch (err) {
  13. console.error("Failed to remove preferences. code =" + err.code + ", message =" + err.message);
  14. }

Stage模型示例:

  1. import UIAbility from '@ohos.app.ability.UIAbility';
  2. class EntryAbility extends UIAbility {
  3. onWindowStageCreate(windowStage) {
  4. try {
  5. dataPreferences.removePreferencesFromCache(this.context, 'mystore', function (err) {
  6. if (err) {
  7. console.error("Failed to remove preferences. code =" + err.code + ", message =" + err.message);
  8. return;
  9. }
  10. console.info("Succeeded in removing preferences.");
  11. })
  12. } catch (err) {
  13. console.error("Failed to remove preferences. code =" + err.code + ", message =" + err.message);
  14. }
  15. }
  16. }

dataPreferences.removePreferencesFromCache

removePreferencesFromCache(context: Context, name: string): Promise<void>

从内存中移除指定的Preferences实例,使用Promise异步回调。

调用该接口后,应用不允许再使用该Preferences实例进行数据操作,否则会出现数据一致性问题。

系统能力: SystemCapability.DistributedDataManager.Preferences.Core

参数:

参数名

类型

必填

说明

context

Context

应用上下文。

FA模型的应用Context定义见Context

Stage模型的应用Context定义见Context

name

string

Preferences实例的名称。

返回值:

类型

说明

Promise<void>

无返回结果的Promise对象。

示例:

FA模型示例:

  1. // 获取context
  2. import featureAbility from '@ohos.ability.featureAbility';
  3. let context = featureAbility.getContext();
  4. try {
  5. let promise = dataPreferences.removePreferencesFromCache(context, 'mystore');
  6. promise.then(() => {
  7. console.info("Succeeded in removing preferences.");
  8. }).catch((err) => {
  9. console.error("Failed to remove preferences. code =" + err.code + ", message =" + err.message);
  10. })
  11. } catch(err) {
  12. console.error("Failed to remove preferences. code =" + err.code + ", message =" + err.message);
  13. }

Stage模型示例:

  1. import UIAbility from '@ohos.app.ability.UIAbility';
  2. class EntryAbility extends UIAbility {
  3. onWindowStageCreate(windowStage) {
  4. try {
  5. let promise = dataPreferences.removePreferencesFromCache(this.context, 'mystore');
  6. promise.then(() => {
  7. console.info("Succeeded in removing preferences.");
  8. }).catch((err) => {
  9. console.error("Failed to remove preferences. code =" + err.code + ", message =" + err.message);
  10. })
  11. } catch(err) {
  12. console.error("Failed to remove preferences. code =" + err.code + ", message =" + err.message);
  13. }
  14. }
  15. }

Preferences

存储实例,提供获取和修改存储数据的接口。

下列接口都需先使用data_preferences.getPreferences获取到Preferences实例,再通过此实例调用对应接口。

get

get(key: string, defValue: ValueType, callback: AsyncCallback<ValueType>): void

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

系统能力: SystemCapability.DistributedDataManager.Preferences.Core

参数:

参数名

类型

必填

说明

key

string

要获取的存储Key名称,不能为空。

defValue

ValueType

默认返回值。支持number、string、boolean、Array<number>、Array<string>、Array<boolean>类型。

callback

AsyncCallback<ValueType>

回调函数。当获取成功时,err为undefined,data为键对应的值;否则err为错误对象。

示例:

  1. try {
  2. preferences.get('startup', 'default', function (err, val) {
  3. if (err) {
  4. console.error("Failed to get value of 'startup'. code =" + err.code + ", message =" + err.message);
  5. return;
  6. }
  7. console.info("Succeeded in getting value of 'startup'. val: " + val);
  8. })
  9. } catch (err) {
  10. console.error("Failed to get value of 'startup'. code =" + err.code + ", message =" + err.message);
  11. }

get

get(key: string, defValue: ValueType): Promise<ValueType>

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

系统能力: SystemCapability.DistributedDataManager.Preferences.Core

参数:

参数名

类型

必填

说明

key

string

要获取的存储Key名称,不能为空。

defValue

ValueType

默认返回值。支持number、string、boolean、Array<number>、Array<string>、Array<boolean>类型。

返回值:

类型

说明

Promise<ValueType>

Promise对象,返回键对应的值。

示例:

  1. try {
  2. let promise = preferences.get('startup', 'default');
  3. promise.then((data) => {
  4. console.info("Succeeded in getting value of 'startup'. Data: " + data);
  5. }).catch((err) => {
  6. console.error("Failed to get value of 'startup'. code =" + err.code + ", message =" + err.message);
  7. })
  8. } catch(err) {
  9. console.error("Failed to get value of 'startup'. code =" + err.code + ", message =" + err.message);
  10. }

getAll

getAll(callback: AsyncCallback<Object>): void;

获取含有所有键值的Object对象。

系统能力: SystemCapability.DistributedDataManager.Preferences.Core

参数:

参数名

类型

必填

说明

callback

AsyncCallback<Object>

回调函数。当获取成功,err为undefined,value为含有所有键值的Object对象;否则err为错误对象。

示例:

  1. try {
  2. preferences.getAll(function (err, value) {
  3. if (err) {
  4. console.error("Failed to get all key-values. code =" + err.code + ", message =" + err.message);
  5. return;
  6. }
  7. let allKeys = Object.keys(value);
  8. console.info("getAll keys = " + allKeys);
  9. console.info("getAll object = " + JSON.stringify(value));
  10. })
  11. } catch (err) {
  12. console.error("Failed to get all key-values. code =" + err.code + ", message =" + err.message);
  13. }

getAll

getAll(): Promise<Object>

获取含有所有键值的Object对象。

系统能力: SystemCapability.DistributedDataManager.Preferences.Core

返回值:

类型

说明

Promise<Object>

Promise对象,返回含有所有键值的Object对象。

示例:

  1. try {
  2. let promise = preferences.getAll();
  3. promise.then((value) => {
  4. let allKeys = Object.keys(value);
  5. console.info('getAll keys = ' + allKeys);
  6. console.info("getAll object = " + JSON.stringify(value));
  7. }).catch((err) => {
  8. console.error("Failed to get all key-values. code =" + err.code + ", message =" + err.message);
  9. })
  10. } catch (err) {
  11. console.error("Failed to get all key-values. code =" + err.code + ", message =" + err.message);
  12. }

put

put(key: string, value: ValueType, callback: AsyncCallback<void>): void

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

系统能力: SystemCapability.DistributedDataManager.Preferences.Core

参数:

参数名

类型

必填

说明

key

string

要修改的存储的Key,不能为空。

value

ValueType

存储的新值。支持number、string、boolean、Array<number>、Array<string>、Array<boolean>类型。

callback

AsyncCallback<void>

回调函数。当数据写入成功,err为undefined;否则为错误对象。

示例:

  1. try {
  2. preferences.put('startup', 'auto', function (err) {
  3. if (err) {
  4. console.error("Failed to put value of 'startup'. code =" + err.code + ", message =" + err.message);
  5. return;
  6. }
  7. console.info("Succeeded in putting value of 'startup'.");
  8. })
  9. } catch (err) {
  10. console.error("Failed to put value of 'startup'. code =" + err.code + ", message =" + err.message);
  11. }

put

put(key: string, value: ValueType): Promise<void>

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

系统能力: SystemCapability.DistributedDataManager.Preferences.Core

参数:

参数名

类型

必填

说明

key

string

要修改的存储的Key,不能为空。

value

ValueType

存储的新值。支持number、string、boolean、Array<number>、Array<string>、Array<boolean>类型。

返回值:

类型

说明

Promise<void>

无返回结果的Promise对象。

示例:

  1. try {
  2. let promise = preferences.put('startup', 'auto');
  3. promise.then(() => {
  4. console.info("Succeeded in putting value of 'startup'.");
  5. }).catch((err) => {
  6. console.error("Failed to put value of 'startup'. code =" + err.code +", message =" + err.message);
  7. })
  8. } catch(err) {
  9. console.error("Failed to put value of 'startup'. code =" + err.code +", message =" + err.message);
  10. }

has

has(key: string, callback: AsyncCallback<boolean>): void

检查Preferences实例是否包含名为给定Key的存储键值对,使用callback异步回调。

系统能力: SystemCapability.DistributedDataManager.Preferences.Core

参数:

参数名

类型

必填

说明

key

string

要检查的存储key名称,不能为空。

callback

AsyncCallback<boolean>

回调函数。返回Preferences实例是否包含给定key的存储键值对,true表示存在,false表示不存在。

示例:

  1. try {
  2. preferences.has('startup', function (err, val) {
  3. if (err) {
  4. console.error("Failed to check the key 'startup'. code =" + err.code + ", message =" + err.message);
  5. return;
  6. }
  7. if (val) {
  8. console.info("The key 'startup' is contained.");
  9. } else {
  10. console.info("The key 'startup' dose not contain.");
  11. }
  12. })
  13. } catch (err) {
  14. console.error("Failed to check the key 'startup'. code =" + err.code + ", message =" + err.message);
  15. }

has

has(key: string): Promise<boolean>

检查Preferences实例是否包含名为给定Key的存储键值对,使用Promise异步回调。

系统能力: SystemCapability.DistributedDataManager.Preferences.Core

参数:

参数名

类型

必填

说明

key

string

要检查的存储key名称,不能为空。

返回值:

类型

说明

Promise<boolean>

Promise对象。返回Preferences实例是否包含给定key的存储键值对,true表示存在,false表示不存在。

示例:

  1. try {
  2. let promise = preferences.has('startup');
  3. promise.then((val) => {
  4. if (val) {
  5. console.info("The key 'startup' is contained.");
  6. } else {
  7. console.info("The key 'startup' dose not contain.");
  8. }
  9. }).catch((err) => {
  10. console.error("Failed to check the key 'startup'. code =" + err.code + ", message =" + err.message);
  11. })
  12. } catch(err) {
  13. console.error("Failed to check the key 'startup'. code =" + err.code + ", message =" + err.message);
  14. }

delete

delete(key: string, callback: AsyncCallback<void>): void

从Preferences实例中删除名为给定Key的存储键值对,使用callback异步回调。

系统能力: SystemCapability.DistributedDataManager.Preferences.Core

参数:

参数名

类型

必填

说明

key

string

要删除的存储Key名称,不能为空。

callback

AsyncCallback<void>

回调函数。当删除成功,err为undefined;否则为错误对象。

示例:

  1. try {
  2. preferences.delete('startup', function (err) {
  3. if (err) {
  4. console.error("Failed to delete the key 'startup'. code =" + err.code + ", message =" + err.message);
  5. return;
  6. }
  7. console.info("Succeeded in deleting the key 'startup'.");
  8. })
  9. } catch (err) {
  10. console.error("Failed to delete the key 'startup'. code =" + err.code + ", message =" + err.message);
  11. }

delete

delete(key: string): Promise<void>

从Preferences实例中删除名为给定Key的存储键值对,使用Promise异步回调。

系统能力: SystemCapability.DistributedDataManager.Preferences.Core

参数:

参数名

类型

必填

说明

key

string

要删除的存储key名称,不能为空。

返回值:

类型

说明

Promise<void>

无返回结果的Promise对象。

示例:

  1. try {
  2. let promise = preferences.delete('startup');
  3. promise.then(() => {
  4. console.info("Succeeded in deleting the key 'startup'.");
  5. }).catch((err) => {
  6. console.error("Failed to delete the key 'startup'. code =" + err.code +", message =" + err.message);
  7. })
  8. } catch(err) {
  9. console.error("Failed to delete the key 'startup'. code =" + err.code +", message =" + err.message);
  10. }

flush

flush(callback: AsyncCallback<void>): void

将当前Preferences实例的数据异步存储到用户首选项的持久化文件中,使用callback异步回调。

系统能力: SystemCapability.DistributedDataManager.Preferences.Core

参数:

参数名

类型

必填

说明

callback

AsyncCallback<void>

回调函数。当保存成功,err为undefined;否则为错误对象。

示例:

  1. try {
  2. preferences.flush(function (err) {
  3. if (err) {
  4. console.error("Failed to flush. code =" + err.code + ", message =" + err.message);
  5. return;
  6. }
  7. console.info("Succeeded in flushing.");
  8. })
  9. } catch (err) {
  10. console.error("Failed to flush. code =" + err.code + ", message =" + err.message);
  11. }

flush

flush(): Promise<void>

将当前Preferences实例的数据异步存储到用户首选项的持久化文件中,使用Promise异步回调。

系统能力: SystemCapability.DistributedDataManager.Preferences.Core

返回值:

类型

说明

Promise<void>

无返回结果的Promise对象。

示例:

  1. try {
  2. let promise = preferences.flush();
  3. promise.then(() => {
  4. console.info("Succeeded in flushing.");
  5. }).catch((err) => {
  6. console.error("Failed to flush. code =" + err.code + ", message =" + err.message);
  7. })
  8. } catch (err) {
  9. console.error("Failed to flush. code =" + err.code + ", message =" + err.message);
  10. }

clear

clear(callback: AsyncCallback<void>): void

清除此Preferences实例中的所有存储,使用callback异步回调。

系统能力: SystemCapability.DistributedDataManager.Preferences.Core

参数:

参数名

类型

必填

说明

callback

AsyncCallback<void>

回调函数。当清除成功,err为undefined;否则为错误对象。

示例:

  1. try {
  2. preferences.clear(function (err) {
  3. if (err) {
  4. console.error("Failed to clear. code =" + err.code + ", message =" + err.message);
  5. return;
  6. }
  7. console.info("Succeeded in clearing.");
  8. })
  9. } catch (err) {
  10. console.error("Failed to clear. code =" + err.code + ", message =" + err.message);
  11. }

clear

clear(): Promise<void>

清除此Preferences实例中的所有存储,使用Promise异步回调。

系统能力: SystemCapability.DistributedDataManager.Preferences.Core

返回值:

类型

说明

Promise<void>

无返回结果的Promise对象。

示例:

  1. try {
  2. let promise = preferences.clear();
  3. promise.then(() => {
  4. console.info("Succeeded in clearing.");
  5. }).catch((err) => {
  6. console.error("Failed to clear. code =" + err.code + ", message =" + err.message);
  7. })
  8. } catch(err) {
  9. console.error("Failed to clear. code =" + err.code + ", message =" + err.message);
  10. }

on('change')

on(type: 'change', callback: Callback<{ key : string }>): void

订阅数据变更,订阅的Key的值发生变更后,在执行flush方法后,触发callback回调。

系统能力: SystemCapability.DistributedDataManager.Preferences.Core

参数:

参数名

类型

必填

说明

type

string

事件类型,固定值'change',表示数据变更。

callback

Callback<{ key : string }>

回调对象实例。

示例:

  1. try {
  2. dataPreferences.getPreferences(this.context, 'mystore', function (err, preferences) {
  3. if (err) {
  4. console.error("Failed to get preferences.");
  5. return;
  6. }
  7. let observer = function (key) {
  8. console.info("The key " + key + " changed.");
  9. }
  10. preferences.on('change', observer);
  11. preferences.put('startup', 'manual', function (err) {
  12. if (err) {
  13. console.error("Failed to put the value of 'startup'. Cause: " + err);
  14. return;
  15. }
  16. console.info("Succeeded in putting the value of 'startup'.");
  17. preferences.flush(function (err) {
  18. if (err) {
  19. console.error("Failed to flush. Cause: " + err);
  20. return;
  21. }
  22. console.info("Succeeded in flushing.");
  23. })
  24. })
  25. })
  26. } catch (err) {
  27. console.error("Failed to flush. code =" + err.code + ", message =" + err.message);
  28. }

off('change')

off(type: 'change', callback?: Callback<{ key : string }>): void

取消订阅数据变更。

系统能力: SystemCapability.DistributedDataManager.Preferences.Core

参数:

参数名

类型

必填

说明

type

string

事件类型,固定值'change',表示数据变更。

callback

Callback<{ key : string }>

需要取消的回调对象实例,不填写则全部取消。

示例:

  1. try {
  2. dataPreferences.getPreferences(this.context, 'mystore', function (err, preferences) {
  3. if (err) {
  4. console.error("Failed to get preferences.");
  5. return;
  6. }
  7. let observer = function (key) {
  8. console.info("The key " + key + " changed.");
  9. }
  10. preferences.on('change', observer);
  11. preferences.put('startup', 'auto', function (err) {
  12. if (err) {
  13. console.error("Failed to put the value of 'startup'. Cause: " + err);
  14. return;
  15. }
  16. console.info("Succeeded in putting the value of 'startup'.");
  17. preferences.flush(function (err) {
  18. if (err) {
  19. console.error("Failed to flush. Cause: " + err);
  20. return;
  21. }
  22. console.info("Succeeded in flushing.");
  23. })
  24. preferences.off('change', observer);
  25. })
  26. })
  27. } catch (err) {
  28. console.error("Failed to flush. code =" + err.code + ", message =" + err.message);
  29. }

ValueType

用于表示允许的数据字段类型。

系统能力: SystemCapability.DistributedDataManager.Preferences.Core

类型

说明

number

表示值类型为数字。

string

表示值类型为字符串。

boolean

表示值类型为布尔值。

Array<number>

表示值类型为数字类型的数组。

Array<boolean>

表示值类型为布尔类型的数组。

Array<string>

表示值类型为字符串类型的数组。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号