js-apis-data-preferences.md 42.9 KB
Newer Older
1
# @ohos.data.preferences (用户首选项)
P
PaDoBoo 已提交
2

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

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


P
PaDaBoo 已提交
8
> **说明:**
9
>
10
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
P
PaDoBoo 已提交
11 12 13 14


## 导入模块

15
```js
16
import data_preferences from '@ohos.data.preferences';
P
PaDoBoo 已提交
17 18
```

G
ge-yafang 已提交
19
## 常量
P
PaDoBoo 已提交
20

21
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
22

23 24
| 名称             | 参数类型 | 可读 | 可写 | 说明                                    |
| ---------------- | -------- | ---- | ---- | --------------------------------------- |
25 26
| MAX_KEY_LENGTH   | number   | 是   | 否   | Key的最大长度限制为80个字节。     |
| MAX_VALUE_LENGTH | number   | 是   | 否   | Value的最大长度限制为8192个字节。 |
P
PaDoBoo 已提交
27 28


29
## data_preferences.getPreferences
P
PaDoBoo 已提交
30

P
PaDaBoo 已提交
31
getPreferences(context: Context, name: string, callback: AsyncCallback<Preferences>): void
P
PaDoBoo 已提交
32

33
获取Preferences实例,使用callback异步回调。
P
PaDaBoo 已提交
34

P
PaDaBoo 已提交
35
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
36

G
ge-yafang 已提交
37
**参数:**
38 39 40

| 参数名   | 类型                                             | 必填 | 说明                                                         |
| -------- | ------------------------------------------------ | ---- | ------------------------------------------------------------ |
41
| context  | Context            | 是   | 应用上下文。<br>FA模型的应用Context定义见[Context](js-apis-inner-app-context.md)<br>Stage模型的应用Context定义见[Context](js-apis-inner-application-uiAbilityContext.md)。                                                 |
42 43
| name     | string                                           | 是   | Preferences实例的名称。                                      |
| callback | AsyncCallback&lt;[Preferences](#preferences)&gt; | 是   | 回调函数。当获取Preferences实例成功,err为undefined,返回Preferences实例;否则err为错误码。 |
P
PaDoBoo 已提交
44

G
ge-yafang 已提交
45
**示例:**
46

47 48
FA模型示例:

49
```js
50
// 获取context
51 52 53
import featureAbility from '@ohos.ability.featureAbility';
let context = featureAbility.getContext();
let preferences = null;
D
duanweiling 已提交
54

D
duanweiling 已提交
55
try {
D
duanweiling 已提交
56 57
    data_preferences.getPreferences(context, 'mystore', function (err, val) {
        if (err) {
D
duanweiling 已提交
58 59 60
	        console.info("Failed to get preferences. code =" + err.code + ", message =" + err.message);
	        return;
	    }
61
	    preferences = val;
D
duanweiling 已提交
62 63
	    console.info("Succeeded in getting preferences.");
	})
D
duanweiling 已提交
64
} catch (err) {
D
duanweiling 已提交
65
    console.info("Failed to get preferences. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
66
}
P
PaDaBoo 已提交
67
```
P
PaDoBoo 已提交
68

69 70 71
Stage模型示例:

```ts
72 73
import UIAbility from '@ohos.app.ability.UIAbility';

W
wangxiyue 已提交
74
let preferences = null;
75 76

class EntryAbility extends UIAbility {
W
wangxiyue 已提交
77 78 79 80 81 82 83
    onWindowStageCreate(windowStage) {
        try {
            data_preferences.getPreferences(this.context, 'mystore', function (err, val) {
                if (err) {
                    console.info("Failed to get preferences. code =" + err.code + ", message =" + err.message);
                    return;
                }
84
                preferences = val;
W
wangxiyue 已提交
85 86 87 88 89
                console.info("Succeeded in getting preferences.");
            })
        } catch (err) {
            console.info("Failed to get preferences. code =" + err.code + ", message =" + err.message);
        }
90 91 92
    }
}
```
P
PaDoBoo 已提交
93

94
## data_preferences.getPreferences
P
PaDoBoo 已提交
95

P
PaDaBoo 已提交
96
getPreferences(context: Context, name: string): Promise&lt;Preferences&gt;
P
PaDoBoo 已提交
97

98
获取Preferences实例,使用Promise异步回调。
P
PaDoBoo 已提交
99

P
PaDaBoo 已提交
100
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
101

G
ge-yafang 已提交
102
**参数:**
103 104 105

| 参数名  | 类型                                  | 必填 | 说明                    |
| ------- | ------------------------------------- | ---- | ----------------------- |
106
| context | Context | 是   | 应用上下文。<br>FA模型的应用Context定义见[Context](js-apis-inner-app-context.md)<br>Stage模型的应用Context定义见[Context](js-apis-inner-application-uiAbilityContext.md)。            |
107
| name    | string                                | 是   | Preferences实例的名称。 |
P
PaDoBoo 已提交
108

G
ge-yafang 已提交
109
**返回值:**
110

111 112 113
| 类型                                       | 说明                               |
| ------------------------------------------ | ---------------------------------- |
| Promise&lt;[Preferences](#preferences)&gt; | Promise对象,返回Preferences实例。 |
P
PaDoBoo 已提交
114

G
ge-yafang 已提交
115
**示例:**
116

117 118
FA模型示例:

119
```js
120
// 获取context
121 122
import featureAbility from '@ohos.ability.featureAbility';
let context = featureAbility.getContext();
123

D
duanweiling 已提交
124
let preferences = null;
D
duanweiling 已提交
125
try {
D
duanweiling 已提交
126 127
    let promise = data_preferences.getPreferences(context, 'mystore');
    promise.then((object) => {
D
duanweiling 已提交
128 129
        preferences = object;
        console.info("Succeeded in getting preferences.");
D
duanweiling 已提交
130
    }).catch((err) => {
W
wangxiyue 已提交
131
        console.info("Failed to get preferences. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
132 133
    })
} catch(err) {
W
wangxiyue 已提交
134
    console.info("Failed to get preferences. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
135
}
P
PaDaBoo 已提交
136
```
P
PaDoBoo 已提交
137

138 139 140
Stage模型示例:

```ts
141 142
import UIAbility from '@ohos.app.ability.UIAbility';

W
wangxiyue 已提交
143
let preferences = null;
144 145

class EntryAbility extends UIAbility {
W
wangxiyue 已提交
146 147 148 149 150 151 152 153 154 155 156 157
    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);
        }
158 159 160
    }
}
```
P
PaDoBoo 已提交
161

162
## data_preferences.deletePreferences
P
PaDoBoo 已提交
163

164
deletePreferences(context: Context, name: string, callback: AsyncCallback&lt;void&gt;): void
P
PaDoBoo 已提交
165

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

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

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

P
PaDaBoo 已提交
172
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
173

G
ge-yafang 已提交
174
**参数:**
175

176 177
| 参数名   | 类型                                  | 必填 | 说明                                                 |
| -------- | ------------------------------------- | ---- | ---------------------------------------------------- |
178
| context  | Context | 是   | 应用上下文。<br>FA模型的应用Context定义见[Context](js-apis-inner-app-context.md)<br>Stage模型的应用Context定义见[Context](js-apis-inner-application-uiAbilityContext.md)。                                         |
179
| name     | string                                | 是   | Preferences实例的名称。                              |
180
| callback | AsyncCallback&lt;void&gt;             | 是   | 回调函数。当移除成功,err为undefined,否则为错误码。 |
P
PaDoBoo 已提交
181

D
duanweiling 已提交
182 183
**错误码:**

184
以下错误码的详细介绍请参见[用户首选项错误码](../errorcodes/errorcode-preferences.md)
D
duanweiling 已提交
185 186 187

| 错误码ID | 错误信息                       |
| -------- | ------------------------------|
L
LiRui 已提交
188
| 15500010 | Failed to delete preferences file. |
D
duanweiling 已提交
189

G
ge-yafang 已提交
190
**示例:**
191

192 193
FA模型示例:

194
```js
195
// 获取context
196 197
import featureAbility from '@ohos.ability.featureAbility';
let context = featureAbility.getContext();
198

D
duanweiling 已提交
199
try {
L
LiRui 已提交
200
    data_preferences.deletePreferences(context, 'mystore', function (err) {
D
duanweiling 已提交
201
        if (err) {
D
duanweiling 已提交
202 203
            console.info("Failed to delete preferences. code =" + err.code + ", message =" + err.message);
            return;
D
duanweiling 已提交
204
        }
D
duanweiling 已提交
205
        console.info("Succeeded in deleting preferences." );
D
duanweiling 已提交
206 207
    })
} catch (err) {
D
duanweiling 已提交
208
    console.info("Failed to delete preferences. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
209
}
P
PaDaBoo 已提交
210
```
P
PaDoBoo 已提交
211

212 213 214
Stage模型示例:

```ts
215 216 217
import UIAbility from '@ohos.app.ability.UIAbility';

class EntryAbility extends UIAbility {
W
wangxiyue 已提交
218 219
    onWindowStageCreate(windowStage) {
        try {
L
LiRui 已提交
220
            data_preferences.deletePreferences(this.context, 'mystore', function (err) {
W
wangxiyue 已提交
221 222 223 224 225 226 227
                if (err) {
                    console.info("Failed to delete preferences. code =" + err.code + ", message =" + err.message);
                    return;
                }
                console.info("Succeeded in deleting preferences." );
            })
        } catch (err) {
D
duanweiling 已提交
228
            console.info("Failed to delete preferences. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
229
        }
W
wangxiyue 已提交
230
    }
D
duanweiling 已提交
231
}
232
```
P
PaDoBoo 已提交
233

234
## data_preferences.deletePreferences
P
PaDoBoo 已提交
235

P
PaDaBoo 已提交
236
deletePreferences(context: Context, name: string): Promise&lt;void&gt;
P
PaDoBoo 已提交
237

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

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

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

P
PaDaBoo 已提交
244
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
245

G
ge-yafang 已提交
246
**参数:**
247 248 249

| 参数名  | 类型                                  | 必填 | 说明                    |
| ------- | ------------------------------------- | ---- | ----------------------- |
250
| context | Context | 是   | 应用上下文。<br>FA模型的应用Context定义见[Context](js-apis-inner-app-context.md)<br>Stage模型的应用Context定义见[Context](js-apis-inner-application-uiAbilityContext.md)。            |
251
| name    | string                                | 是   | Preferences实例的名称。 |
P
PaDoBoo 已提交
252

D
duanweiling 已提交
253 254 255 256 257 258
**返回值:**

| 类型                | 说明                      |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |

D
duanweiling 已提交
259 260
**错误码:**

261
以下错误码的详细介绍请参见[用户首选项错误码](../errorcodes/errorcode-preferences.md)
D
duanweiling 已提交
262 263 264

| 错误码ID | 错误信息                       |
| -------- | ------------------------------|
L
LiRui 已提交
265
| 15500010 | Failed to delete preferences file. |
D
duanweiling 已提交
266

G
ge-yafang 已提交
267
**示例:**
268

269 270
FA模型示例:

271
```js
272
// 获取context
273 274
import featureAbility from '@ohos.ability.featureAbility';
let context = featureAbility.getContext();
275

D
duanweiling 已提交
276
try {
D
duanweiling 已提交
277 278 279
    let promise = data_preferences.deletePreferences(context, 'mystore');
    promise.then(() => {
        console.info("Succeeded in deleting preferences.");
D
duanweiling 已提交
280
    }).catch((err) => {
D
duanweiling 已提交
281
        console.info("Failed to delete preferences. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
282 283
    })
} catch(err) {
D
duanweiling 已提交
284
    console.info("Failed to delete preferences. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
285
}
P
PaDaBoo 已提交
286
```
P
PaDoBoo 已提交
287

288 289 290
Stage模型示例:

```ts
291 292 293
import UIAbility from '@ohos.app.ability.UIAbility';

class EntryAbility extends UIAbility {
W
wangxiyue 已提交
294 295 296 297 298 299 300 301 302 303 304
    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);
        }
305 306 307
    }
}
```
P
PaDoBoo 已提交
308

309
## data_preferences.removePreferencesFromCache
P
PaDoBoo 已提交
310

311
removePreferencesFromCache(context: Context, name: string, callback: AsyncCallback&lt;void&gt;): void
P
PaDoBoo 已提交
312

313
从内存中移除指定的Preferences实例,使用callback异步回调。
G
ge-yafang 已提交
314

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

P
PaDaBoo 已提交
317
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
318

G
ge-yafang 已提交
319
**参数:**
320

321 322
| 参数名   | 类型                                  | 必填 | 说明                                                 |
| -------- | ------------------------------------- | ---- | ---------------------------------------------------- |
323
| context  | Context | 是   | 应用上下文。<br>FA模型的应用Context定义见[Context](js-apis-inner-app-context.md)<br>Stage模型的应用Context定义见[Context](js-apis-inner-application-uiAbilityContext.md)。                                         |
324
| name     | string                                | 是   | Preferences实例的名称。                              |
325
| callback | AsyncCallback&lt;void&gt;             | 是   | 回调函数。当移除成功,err为undefined,否则为错误码。 |
P
PaDoBoo 已提交
326

G
ge-yafang 已提交
327
**示例:**
328

329 330
FA模型示例:

331
```js
332
// 获取context
333 334
import featureAbility from '@ohos.ability.featureAbility';
let context = featureAbility.getContext();
335

D
duanweiling 已提交
336
try {
L
LiRui 已提交
337
    data_preferences.removePreferencesFromCache(context, 'mystore', function (err) {
D
duanweiling 已提交
338
        if (err) {
D
duanweiling 已提交
339 340
            console.info("Failed to remove preferences. code =" + err.code + ", message =" + err.message);
            return;
D
duanweiling 已提交
341
        }
D
duanweiling 已提交
342 343
        console.info("Succeeded in removing preferences.");
    })
D
duanweiling 已提交
344
} catch (err) {
D
duanweiling 已提交
345
    console.info("Failed to remove preferences. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
346
}
P
PaDaBoo 已提交
347
```
P
PaDoBoo 已提交
348

349 350 351
Stage模型示例:

```ts
352 353 354
import UIAbility from '@ohos.app.ability.UIAbility';

class EntryAbility extends UIAbility {
W
wangxiyue 已提交
355 356
    onWindowStageCreate(windowStage) {
        try {
L
LiRui 已提交
357
            data_preferences.removePreferencesFromCache(this.context, 'mystore', function (err) {
W
wangxiyue 已提交
358 359 360 361 362 363 364
                if (err) {
                    console.info("Failed to remove preferences. code =" + err.code + ", message =" + err.message);
                    return;
                }
                console.info("Succeeded in removing preferences.");
            })
        } catch (err) {
D
duanweiling 已提交
365
            console.info("Failed to remove preferences. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
366
        }
W
wangxiyue 已提交
367
    }
D
duanweiling 已提交
368
}
D
duanweiling 已提交
369

370
```
P
PaDoBoo 已提交
371

372
## data_preferences.removePreferencesFromCache
P
PaDoBoo 已提交
373

P
PaDaBoo 已提交
374
removePreferencesFromCache(context: Context, name: string): Promise&lt;void&gt;
P
PaDoBoo 已提交
375

A
Annie_wang 已提交
376
从内存中移除指定的Preferences实例,使用Promise异步回调。
G
ge-yafang 已提交
377

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

P
PaDaBoo 已提交
380
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
381

G
ge-yafang 已提交
382
**参数:**
383 384 385

| 参数名  | 类型                                  | 必填 | 说明                    |
| ------- | ------------------------------------- | ---- | ----------------------- |
386
| context | Context | 是   | 应用上下文。<br>FA模型的应用Context定义见[Context](js-apis-inner-app-context.md)<br>Stage模型的应用Context定义见[Context](js-apis-inner-application-uiAbilityContext.md)。            |
387
| name    | string                                | 是   | Preferences实例的名称。 |
P
PaDoBoo 已提交
388

G
ge-yafang 已提交
389
**返回值:**
390

391 392 393
| 类型                | 说明                      |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
P
PaDoBoo 已提交
394

G
ge-yafang 已提交
395
**示例:**
396

397 398
FA模型示例:

399
```js
400
// 获取context
401 402
import featureAbility from '@ohos.ability.featureAbility';
let context = featureAbility.getContext();
403

D
duanweiling 已提交
404
try {
D
duanweiling 已提交
405 406 407
    let promise = data_preferences.removePreferencesFromCache(context, 'mystore');
	promise.then(() => {
    	console.info("Succeeded in removing preferences.");
D
duanweiling 已提交
408
    }).catch((err) => {
D
duanweiling 已提交
409
        console.info("Failed to remove preferences. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
410 411
    })
} catch(err) {
D
duanweiling 已提交
412
    console.info("Failed to remove preferences. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
413
}
P
PaDaBoo 已提交
414
```
P
PaDoBoo 已提交
415

416 417 418
Stage模型示例:

```ts
419
import UIAbility from '@ohos.app.ability.UIAbility';
W
wangxiyue 已提交
420

421
class EntryAbility extends UIAbility {
W
wangxiyue 已提交
422 423 424 425 426 427 428 429 430 431 432
    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);
        }
433 434 435
    }
}
```
P
PaDoBoo 已提交
436

M
MangTsang 已提交
437 438
## data_preferences.removePreferencesFromCacheSync<sup>10+</sup>

M
MangTsang 已提交
439
removePreferencesFromCacheSync(context: Context, name: string): void
M
MangTsang 已提交
440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485

从内存中移除指定的Preferences实例,此为同步接口。

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

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

**参数:**

| 参数名  | 类型                                  | 必填 | 说明                    |
| ------- | ------------------------------------- | ---- | ----------------------- |
| context | Context | 是   | 应用上下文。<br>FA模型的应用Context定义见[Context](js-apis-inner-app-context.md)<br>Stage模型的应用Context定义见[Context](js-apis-inner-application-uiAbilityContext.md)。            |
| name    | string                                | 是   | Preferences实例的名称。 |

**示例:**

FA模型示例:

```js
// 获取context
import featureAbility from '@ohos.ability.featureAbility';
let context = featureAbility.getContext();

try {
    data_preferences.removePreferencesFromCacheSync(context, 'mystore');
} catch(err) {
    console.info("Failed to remove preferences. code =" + err.code + ", message =" + err.message);
}
```

Stage模型示例:

```ts
import UIAbility from '@ohos.app.ability.UIAbility';

class EntryAbility extends UIAbility {
    onWindowStageCreate(windowStage) {
        try {
            data_preferences.removePreferencesFromCacheSync(this.context, 'mystore');
        } catch(err) {
            console.info("Failed to remove preferences. code =" + err.code + ", message =" + err.message);
        }
    }
}
```

P
PaDoBoo 已提交
486 487
## Preferences

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

下列接口都需先使用[data_preferences.getPreferences](#data_preferencesgetpreferences)获取到Preferences实例,再通过此实例调用对应接口。
P
PaDoBoo 已提交
491 492 493 494 495 496


### get

get(key: string, defValue: ValueType, callback: AsyncCallback&lt;ValueType&gt;): void

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

P
PaDaBoo 已提交
499
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
500

G
ge-yafang 已提交
501
**参数:**
502

503 504 505 506 507
| 参数名   | 类型                                         | 必填 | 说明                                                         |
| -------- | -------------------------------------------- | ---- | ------------------------------------------------------------ |
| key      | string                                       | 是   | 要获取的存储Key名称,不能为空。                              |
| defValue | [ValueType](#valuetype)                      | 是   | 默认返回值。支持number、string、boolean、Array\<number>、Array\<string>、Array\<boolean>类型。 |
| callback | AsyncCallback&lt;[ValueType](#valuetype)&gt; | 是   | 回调函数。当获取成功时,err为undefined,data为键对应的值;否则err为错误码。 |
P
PaDoBoo 已提交
508

G
ge-yafang 已提交
509
**示例:**
510 511

```js
D
duanweiling 已提交
512
try {
513
    preferences.get('startup', 'default', function (err, val) {
D
duanweiling 已提交
514
        if (err) {
D
duanweiling 已提交
515 516
            console.info("Failed to get value of 'startup'. code =" + err.code + ", message =" + err.message);
            return;
D
duanweiling 已提交
517
        }
D
duanweiling 已提交
518
        console.info("Succeeded in getting value of 'startup'. val: " + val);
D
duanweiling 已提交
519 520
    })
} catch (err) {
D
duanweiling 已提交
521
    console.info("Failed to get value of 'startup'. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
522
}
P
PaDaBoo 已提交
523
```
P
PaDoBoo 已提交
524 525 526 527 528 529


### get

get(key: string, defValue: ValueType): Promise&lt;ValueType&gt;

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

P
PaDaBoo 已提交
532
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
533

534
 **参数:**
535

536 537 538 539
| 参数名   | 类型                    | 必填 | 说明                                                         |
| -------- | ----------------------- | ---- | ------------------------------------------------------------ |
| key      | string                  | 是   | 要获取的存储Key名称,不能为空。                              |
| defValue | [ValueType](#valuetype) | 是   | 默认返回值。支持number、string、boolean、Array\<number>、Array\<string>、Array\<boolean>类型。 |
P
PaDoBoo 已提交
540

G
ge-yafang 已提交
541
**返回值:**
542 543 544 545

| 类型                                | 说明                          |
| ----------------------------------- | ----------------------------- |
| Promise<[ValueType](#valuetype)&gt; | Promise对象,返回键对应的值。 |
P
PaDoBoo 已提交
546

G
ge-yafang 已提交
547
**示例:**
548

549
```js
D
duanweiling 已提交
550
try {
D
duanweiling 已提交
551 552 553
    let promise = preferences.get('startup', 'default');
    promise.then((data) => {
        console.info("Succeeded in getting value of 'startup'. Data: " + data);
D
duanweiling 已提交
554
    }).catch((err) => {
D
duanweiling 已提交
555
        console.info("Failed to get value of 'startup'. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
556 557
    })
} catch(err) {
D
duanweiling 已提交
558
    console.info("Failed to get value of 'startup'. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
559
}
P
PaDaBoo 已提交
560
```
P
PaDoBoo 已提交
561

M
MangTsang 已提交
562 563
### getSync<sup>10+</sup>

M
MangTsang 已提交
564
getSync(key: string, defValue: ValueType): ValueType
M
MangTsang 已提交
565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593

获取键对应的值,如果值为null或者非默认值类型,返回默认数据defValue,此为同步接口。

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

**参数:**

| 参数名   | 类型                    | 必填 | 说明                                                         |
| -------- | ----------------------- | ---- | ------------------------------------------------------------ |
| key      | string                  | 是   | 要获取的存储Key名称,不能为空。                              |
| defValue | [ValueType](#valuetype) | 是   | 默认返回值。支持number、string、boolean、Array\<number>、Array\<string>、Array\<boolean>类型。 |

**返回值:**

| 类型                                | 说明                          |
| ----------------------------------- | ----------------------------- |
| [ValueType](#valuetype) | 返回键对应的值。 |

**示例:**

```js
try {
    let value = preferences.getSync('startup', 'default');
    console.info("Succeeded in getting value of 'startup'. Data: " + value);
} catch(err) {
    console.info("Failed to get value of 'startup'. code =" + err.code + ", message =" + err.message);
}
```

594 595 596 597
### getAll

getAll(callback: AsyncCallback&lt;Object&gt;): void;

598
获取含有所有键值的Object对象。
599 600 601 602

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

**参数:**
603

604 605 606
| 参数名   | 类型                        | 必填 | 说明                                                         |
| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
| callback | AsyncCallback&lt;Object&gt; | 是   | 回调函数。当获取成功,err为undefined,value为含有所有键值的Object对象;否则err为错误码。 |
607 608

**示例:**
609 610

```js
D
duanweiling 已提交
611
try {
D
duanweiling 已提交
612
    preferences.getAll(function (err, value) {
D
duanweiling 已提交
613
        if (err) {
D
duanweiling 已提交
614 615
            console.info("Failed to get all key-values. code =" + err.code + ", message =" + err.message);
            return;
D
duanweiling 已提交
616
        }
D
duanweiling 已提交
617 618 619
    let allKeys = Object.keys(value);
    console.info("getAll keys = " + allKeys);
    console.info("getAll object = " + JSON.stringify(value));
D
duanweiling 已提交
620 621
    })
} catch (err) {
D
duanweiling 已提交
622
    console.info("Failed to get all key-values. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
623
}
624 625 626 627 628 629 630
```


### getAll

getAll(): Promise&lt;Object&gt;

631
获取含有所有键值的Object对象。
632 633 634 635

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

**返回值:**
636

637 638 639
| 类型                  | 说明                                        |
| --------------------- | ------------------------------------------- |
| Promise&lt;Object&gt; | Promise对象,返回含有所有键值的Object对象。 |
640 641

**示例:**
642

643
```js
D
duanweiling 已提交
644
try {
D
duanweiling 已提交
645 646
    let promise = preferences.getAll();
    promise.then((value) => {
D
duanweiling 已提交
647 648 649
        let allKeys = Object.keys(value);
        console.info('getAll keys = ' + allKeys);
        console.info("getAll object = " + JSON.stringify(value));
D
duanweiling 已提交
650
    }).catch((err) => {
D
duanweiling 已提交
651
        console.info("Failed to get all key-values. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
652 653
    })
} catch (err) {
D
duanweiling 已提交
654
    console.info("Failed to get all key-values. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
655
}
656
```
P
PaDoBoo 已提交
657

M
MangTsang 已提交
658 659
### getAllSync<sup>10+</sup>

M
MangTsang 已提交
660
getAllSync(): Object
M
MangTsang 已提交
661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684

获取含有所有键值的Object对象,此为同步接口。

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

**返回值:**

| 类型                  | 说明                                        |
| --------------------- | ------------------------------------------- |
| Object | 返回含有所有键值的Object对象。 |

**示例:**

```js
try {
    let value = preferences.getAllSync();
    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);
}
```

P
PaDoBoo 已提交
685 686 687 688
### put

put(key: string, value: ValueType, callback: AsyncCallback&lt;void&gt;): void

689
将数据写入Preferences实例,可通过[flush](#flush)将Preferences实例持久化,使用callback异步回调。
P
PaDoBoo 已提交
690

P
PaDaBoo 已提交
691
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
692

G
ge-yafang 已提交
693
**参数:**
694

695 696 697 698 699
| 参数名   | 类型                      | 必填 | 说明                                                         |
| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
| key      | string                    | 是   | 要修改的存储的Key,不能为空。                                |
| value    | [ValueType](#valuetype)   | 是   | 存储的新值。支持number、string、boolean、Array\<number>、Array\<string>、Array\<boolean>类型。 |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。当数据写入成功,err为undefined;否则为错误码。     |
P
PaDoBoo 已提交
700

G
ge-yafang 已提交
701
**示例:**
702

703
```js
D
duanweiling 已提交
704
try {
D
duanweiling 已提交
705
    preferences.put('startup', 'auto', function (err) {
D
duanweiling 已提交
706
        if (err) {
D
duanweiling 已提交
707
            console.info("Failed to put value of 'startup'. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
708
            return;
D
duanweiling 已提交
709
        }
D
duanweiling 已提交
710
        console.info("Succeeded in putting value of 'startup'.");
D
duanweiling 已提交
711
    })
D
duanweiling 已提交
712
} catch (err) {
D
duanweiling 已提交
713
    console.info("Failed to put value of 'startup'. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
714
}
P
PaDaBoo 已提交
715
```
P
PaDoBoo 已提交
716 717 718 719 720 721


### put

put(key: string, value: ValueType): Promise&lt;void&gt;

722
将数据写入Preferences实例,可通过[flush](#flush)将Preferences实例持久化,使用Promise异步回调。
P
PaDoBoo 已提交
723

P
PaDaBoo 已提交
724
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
725

G
ge-yafang 已提交
726
**参数:**
727

728 729 730 731
| 参数名 | 类型                    | 必填 | 说明                                                         |
| ------ | ----------------------- | ---- | ------------------------------------------------------------ |
| key    | string                  | 是   | 要修改的存储的Key,不能为空。                                |
| value  | [ValueType](#valuetype) | 是   | 存储的新值。支持number、string、boolean、Array\<number>、Array\<string>、Array\<boolean>类型。 |
P
PaDoBoo 已提交
732

G
ge-yafang 已提交
733
**返回值:**
734

735 736 737
| 类型                | 说明                      |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
P
PaDoBoo 已提交
738

G
ge-yafang 已提交
739
**示例:**
740

741
```js
D
duanweiling 已提交
742
try {
D
duanweiling 已提交
743
    let promise = preferences.put('startup', 'auto');
D
duanweiling 已提交
744
    promise.then(() => {
D
duanweiling 已提交
745
        console.info("Succeeded in putting value of 'startup'.");
D
duanweiling 已提交
746
    }).catch((err) => {
D
duanweiling 已提交
747
        console.info("Failed to put value of 'startup'. code =" + err.code +", message =" + err.message);
D
duanweiling 已提交
748 749
    })
} catch(err) {
D
duanweiling 已提交
750
    console.info("Failed to put value of 'startup'. code =" + err.code +", message =" + err.message);
D
duanweiling 已提交
751
}
P
PaDaBoo 已提交
752
```
P
PaDoBoo 已提交
753 754


M
MangTsang 已提交
755 756
### putSync<sup>10+</sup>

M
MangTsang 已提交
757
putSync(key: string, value: ValueType): void
M
MangTsang 已提交
758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780

将数据写入Preferences实例,可通过[flush](#flush)将Preferences实例持久化,此为同步接口。

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

**参数:**

| 参数名 | 类型                    | 必填 | 说明                                                         |
| ------ | ----------------------- | ---- | ------------------------------------------------------------ |
| key    | string                  | 是   | 要修改的存储的Key,不能为空。                                |
| value  | [ValueType](#valuetype) | 是   | 存储的新值。支持number、string、boolean、Array\<number>、Array\<string>、Array\<boolean>类型。 |

**示例:**

```js
try {
    preferences.putSync('startup', 'auto');
} catch(err) {
    console.info("Failed to put value of 'startup'. code =" + err.code +", message =" + err.message);
}
```


P
PaDoBoo 已提交
781 782
### has

783
has(key: string, callback: AsyncCallback&lt;boolean&gt;): void
P
PaDoBoo 已提交
784

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

P
PaDaBoo 已提交
787
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
788

G
ge-yafang 已提交
789
**参数:**
790

791 792 793
| 参数名   | 类型                         | 必填 | 说明                                                         |
| -------- | ---------------------------- | ---- | ------------------------------------------------------------ |
| key      | string                       | 是   | 要检查的存储key名称,不能为空。                              |
794
| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。返回Preferences实例是否包含给定key的存储键值对,true表示存在,false表示不存在。 |
P
PaDoBoo 已提交
795

G
ge-yafang 已提交
796
**示例:**
797

798
```js
D
duanweiling 已提交
799
try {
D
duanweiling 已提交
800
    preferences.has('startup', function (err, val) {
D
duanweiling 已提交
801 802 803 804 805 806 807 808 809
        if (err) {
            console.info("Failed to check the key 'startup'. code =" + err.code + ", message =" + err.message);
            return;
        }
        if (val) {
            console.info("The key 'startup' is contained.");
        } else {
            console.info("The key 'startup' dose not contain.");
        }
D
duanweiling 已提交
810
  })
D
duanweiling 已提交
811 812
} catch (err) {
    console.info("Failed to check the key 'startup'. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
813
}
P
PaDaBoo 已提交
814
```
P
PaDoBoo 已提交
815 816 817 818 819 820


### has

has(key: string): Promise&lt;boolean&gt;

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

P
PaDaBoo 已提交
823
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
824

G
ge-yafang 已提交
825
**参数:**
826

827 828 829
| 参数名 | 类型   | 必填 | 说明                            |
| ------ | ------ | ---- | ------------------------------- |
| key    | string | 是   | 要检查的存储key名称,不能为空。 |
P
PaDoBoo 已提交
830

G
ge-yafang 已提交
831
**返回值:**
832

833 834
| 类型                   | 说明                                                         |
| ---------------------- | ------------------------------------------------------------ |
835
| Promise&lt;boolean&gt; | Promise对象。返回Preferences实例是否包含给定key的存储键值对,true表示存在,false表示不存在。 |
P
PaDoBoo 已提交
836

G
ge-yafang 已提交
837
**示例:**
838 839

```js
D
duanweiling 已提交
840
try {
D
duanweiling 已提交
841 842
    let promise = preferences.has('startup');
    promise.then((val) => {
D
duanweiling 已提交
843
        if (val) {
D
duanweiling 已提交
844
            console.info("The key 'startup' is contained.");
D
duanweiling 已提交
845
        } else {
D
duanweiling 已提交
846
            console.info("The key 'startup' dose not contain.");
D
duanweiling 已提交
847
        }
D
duanweiling 已提交
848
    }).catch((err) => {
D
duanweiling 已提交
849
        console.info("Failed to check the key 'startup'. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
850 851
  })
} catch(err) {
D
duanweiling 已提交
852
    console.info("Failed to check the key 'startup'. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
853
}
P
PaDaBoo 已提交
854
```
P
PaDoBoo 已提交
855 856


M
MangTsang 已提交
857 858
### hasSync<sup>10+</sup>

M
MangTsang 已提交
859
hasSync(key: string): boolean
M
MangTsang 已提交
860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892

检查Preferences实例是否包含名为给定Key的存储键值对,此为同步接口。

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

**参数:**

| 参数名 | 类型   | 必填 | 说明                            |
| ------ | ------ | ---- | ------------------------------- |
| key    | string | 是   | 要检查的存储key名称,不能为空。 |

**返回值:**

| 类型                   | 说明                                                         |
| ---------------------- | ------------------------------------------------------------ |
| boolean | 返回Preferences实例是否包含给定key的存储键值对,true表示存在,false表示不存在。 |

**示例:**

```js
try {
    let isExist = preferences.hasSync('startup');
    if (isExist) {
        console.info("The key 'startup' is contained.");
    } else {
        console.info("The key 'startup' dose not contain.");
    }
} catch(err) {
    console.info("Failed to check the key 'startup'. code =" + err.code + ", message =" + err.message);
}
```


P
PaDoBoo 已提交
893 894 895 896
### delete

delete(key: string, callback: AsyncCallback&lt;void&gt;): void

897
从Preferences实例中删除名为给定Key的存储键值对,使用callback异步回调。
P
PaDoBoo 已提交
898

P
PaDaBoo 已提交
899
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
900

G
ge-yafang 已提交
901
**参数:**
902

903 904 905 906
| 参数名   | 类型                      | 必填 | 说明                                                 |
| -------- | ------------------------- | ---- | ---------------------------------------------------- |
| key      | string                    | 是   | 要删除的存储Key名称,不能为空。                      |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。当删除成功,err为undefined;否则为错误码。 |
P
PaDoBoo 已提交
907

G
ge-yafang 已提交
908
**示例:**
909

910
```js
D
duanweiling 已提交
911
try {
D
duanweiling 已提交
912
    preferences.delete('startup', function (err) {
D
duanweiling 已提交
913
        if (err) {
D
duanweiling 已提交
914 915
            console.info("Failed to delete the key 'startup'. code =" + err.code + ", message =" + err.message);
            return;
D
duanweiling 已提交
916
        }
D
duanweiling 已提交
917
        console.info("Succeeded in deleting the key 'startup'.");
D
duanweiling 已提交
918
    })
D
duanweiling 已提交
919 920
} catch (err) {
    console.info("Failed to delete the key 'startup'. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
921
}
P
PaDaBoo 已提交
922
```
P
PaDoBoo 已提交
923 924 925 926 927 928


### delete

delete(key: string): Promise&lt;void&gt;

929
从Preferences实例中删除名为给定Key的存储键值对,使用Promise异步回调。
P
PaDoBoo 已提交
930

P
PaDaBoo 已提交
931
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
932

G
ge-yafang 已提交
933
**参数:**
934

935 936 937
| 参数名 | 类型   | 必填 | 说明                            |
| ------ | ------ | ---- | ------------------------------- |
| key    | string | 是   | 要删除的存储key名称,不能为空。 |
P
PaDoBoo 已提交
938

G
ge-yafang 已提交
939
**返回值:**
940

941 942 943
| 类型                | 说明                      |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
P
PaDoBoo 已提交
944

G
ge-yafang 已提交
945
**示例:**
946

947
```js
D
duanweiling 已提交
948
try {
D
duanweiling 已提交
949
    let promise = preferences.delete('startup');
D
duanweiling 已提交
950
	promise.then(() => {
D
duanweiling 已提交
951
        console.info("Succeeded in deleting the key 'startup'.");
D
duanweiling 已提交
952
    }).catch((err) => {
W
wangxiyue 已提交
953
        console.info("Failed to delete the key 'startup'. code =" + err.code +", message =" + err.message);
D
duanweiling 已提交
954 955
    })
} catch(err) {
W
wangxiyue 已提交
956
    console.info("Failed to delete the key 'startup'. code =" + err.code +", message =" + err.message);
D
duanweiling 已提交
957
}
P
PaDaBoo 已提交
958
```
P
PaDoBoo 已提交
959 960


M
MangTsang 已提交
961 962
### deleteSync<sup>10+</sup>

M
MangTsang 已提交
963
deleteSync(key: string): void
M
MangTsang 已提交
964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985

从Preferences实例中删除名为给定Key的存储键值对,此为同步接口。

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

**参数:**

| 参数名 | 类型   | 必填 | 说明                            |
| ------ | ------ | ---- | ------------------------------- |
| key    | string | 是   | 要删除的存储key名称,不能为空。 |

**示例:**

```js
try {
    preferences.deleteSync('startup');
} catch(err) {
    console.info("Failed to delete the key 'startup'. code =" + err.code +", message =" + err.message);
}
```


P
PaDoBoo 已提交
986 987 988 989
### flush

flush(callback: AsyncCallback&lt;void&gt;): void

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

P
PaDaBoo 已提交
992
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
993

G
ge-yafang 已提交
994
**参数:**
995

996 997 998
| 参数名   | 类型                      | 必填 | 说明                                                 |
| -------- | ------------------------- | ---- | ---------------------------------------------------- |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。当保存成功,err为undefined;否则为错误码。 |
P
PaDoBoo 已提交
999

G
ge-yafang 已提交
1000
**示例:**
1001

1002
```js
D
duanweiling 已提交
1003
try {
D
duanweiling 已提交
1004
    preferences.flush(function (err) {
D
duanweiling 已提交
1005
        if (err) {
D
duanweiling 已提交
1006 1007
            console.info("Failed to flush. code =" + err.code + ", message =" + err.message);
            return;
D
duanweiling 已提交
1008
        }
D
duanweiling 已提交
1009
        console.info("Succeeded in flushing.");
D
duanweiling 已提交
1010
    })
D
duanweiling 已提交
1011 1012
} catch (err) {
    console.info("Failed to flush. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
1013
}
P
PaDaBoo 已提交
1014
```
P
PaDoBoo 已提交
1015 1016 1017 1018 1019 1020


### flush

flush(): Promise&lt;void&gt;

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

P
PaDaBoo 已提交
1023
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
1024

G
ge-yafang 已提交
1025
**返回值:**
1026

1027 1028 1029
| 类型                | 说明                      |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
P
PaDoBoo 已提交
1030

G
ge-yafang 已提交
1031
**示例:**
1032

1033
```js
D
duanweiling 已提交
1034
try {
D
duanweiling 已提交
1035
    let promise = preferences.flush();
D
duanweiling 已提交
1036
    promise.then(() => {
D
duanweiling 已提交
1037
        console.info("Succeeded in flushing.");
D
duanweiling 已提交
1038
    }).catch((err) => {
D
duanweiling 已提交
1039
        console.info("Failed to flush. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
1040 1041
    })
} catch (err) {
D
duanweiling 已提交
1042
    console.info("Failed to flush. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
1043
}
P
PaDaBoo 已提交
1044
```
P
PaDoBoo 已提交
1045 1046 1047 1048 1049 1050


### clear

clear(callback: AsyncCallback&lt;void&gt;): void

1051
清除此Preferences实例中的所有存储,使用callback异步回调。
P
PaDoBoo 已提交
1052

P
PaDaBoo 已提交
1053
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
1054

G
ge-yafang 已提交
1055
**参数:**
1056

1057 1058 1059
| 参数名   | 类型                      | 必填 | 说明                                                 |
| -------- | ------------------------- | ---- | ---------------------------------------------------- |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。当清除成功,err为undefined;否则为错误码。 |
P
PaDoBoo 已提交
1060

G
ge-yafang 已提交
1061
**示例:**
1062

1063
```js
D
duanweiling 已提交
1064 1065 1066
try {
	preferences.clear(function (err) {
        if (err) {
D
duanweiling 已提交
1067 1068
            console.info("Failed to clear. code =" + err.code + ", message =" + err.message);
            return;
D
duanweiling 已提交
1069
        }
D
duanweiling 已提交
1070
        console.info("Succeeded in clearing.");
D
duanweiling 已提交
1071
    })
D
duanweiling 已提交
1072
} catch (err) {
D
duanweiling 已提交
1073
    console.info("Failed to clear. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
1074
}
P
PaDaBoo 已提交
1075
```
P
PaDoBoo 已提交
1076 1077 1078 1079 1080 1081


### clear

clear(): Promise&lt;void&gt;

1082
清除此Preferences实例中的所有存储,使用Promise异步回调。
P
PaDoBoo 已提交
1083

P
PaDaBoo 已提交
1084
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
1085

G
ge-yafang 已提交
1086
**返回值:**
1087

1088 1089 1090
| 类型                | 说明                      |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
P
PaDoBoo 已提交
1091

G
ge-yafang 已提交
1092
**示例:**
1093

1094
```js
D
duanweiling 已提交
1095 1096
try {
    let promise = preferences.clear();
D
duanweiling 已提交
1097 1098
	promise.then(() => {
    	console.info("Succeeded in clearing.");
D
duanweiling 已提交
1099
    }).catch((err) => {
D
duanweiling 已提交
1100
        console.info("Failed to clear. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
1101 1102
    })
} catch(err) {
D
duanweiling 已提交
1103
    console.info("Failed to clear. code =" + err.code + ", message =" + err.message);
D
duanweiling 已提交
1104
}
P
PaDaBoo 已提交
1105
```
P
PaDoBoo 已提交
1106 1107


M
MangTsang 已提交
1108 1109
### clearSync<sup>10+</sup>

M
MangTsang 已提交
1110
clearSync(): void
M
MangTsang 已提交
1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126

清除此Preferences实例中的所有存储,此为同步接口。

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

**示例:**

```js
try {
    preferences.clearSync();
} catch(err) {
    console.info("Failed to clear. code =" + err.code + ", message =" + err.message);
}
```


P
PaDoBoo 已提交
1127 1128 1129 1130
### on('change')

on(type: 'change', callback: Callback&lt;{ key : string }&gt;): void

1131
订阅数据变更,订阅的Key的值发生变更后,在执行[flush](#flush)方法后,触发callback回调。
P
PaDoBoo 已提交
1132

P
PaDaBoo 已提交
1133
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
1134

G
ge-yafang 已提交
1135
**参数:**
1136

1137 1138 1139 1140
| 参数名   | 类型                             | 必填 | 说明                                     |
| -------- | -------------------------------- | ---- | ---------------------------------------- |
| type     | string                           | 是   | 事件类型,固定值'change',表示数据变更。 |
| callback | Callback&lt;{ key : string }&gt; | 是   | 回调对象实例。                           |
P
PaDoBoo 已提交
1141

G
ge-yafang 已提交
1142
**示例:**
1143

1144
```js
D
duanweiling 已提交
1145
try {
D
duanweiling 已提交
1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166
	data_preferences.getPreferences(this.context, 'mystore', function (err, preferences) {
		if (err) {
			console.info("Failed to get preferences.");
			return;
		}
		let observer = function (key) {
			console.info("The key " + key + " changed.");
		}
		preferences.on('change', observer);
		preferences.put('startup', 'manual', function (err) {
			if (err) {
				console.info("Failed to put the value of 'startup'. Cause: " + err);
				return;
			}
			console.info("Succeeded in putting the value of 'startup'.");

			preferences.flush(function (err) {
				if (err) {
					console.info("Failed to flush. Cause: " + err);
					return;
				}
D
duanweiling 已提交
1167
				console.info("Succeeded in flushing.");
D
duanweiling 已提交
1168 1169 1170 1171 1172 1173
			})
		})
	})
} catch (err) {
	console.info("Failed to flush. code =" + err.code + ", message =" + err.message);
}
P
PaDaBoo 已提交
1174
```
P
PaDoBoo 已提交
1175 1176 1177 1178


### off('change')

1179
off(type: 'change', callback?: Callback&lt;{ key : string }&gt;): void
P
PaDoBoo 已提交
1180

1181
取消订阅数据变更。
P
PaDoBoo 已提交
1182

P
PaDaBoo 已提交
1183
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
1184

G
ge-yafang 已提交
1185
**参数:**
1186

1187 1188 1189 1190
| 参数名   | 类型                             | 必填 | 说明                                       |
| -------- | -------------------------------- | ---- | ------------------------------------------ |
| type     | string                           | 是   | 事件类型,固定值'change',表示数据变更。   |
| callback | Callback&lt;{ key : string }&gt; | 否   | 需要取消的回调对象实例,不填写则全部取消。 |
P
PaDoBoo 已提交
1191

G
ge-yafang 已提交
1192
**示例:**
1193

1194
```js
D
duanweiling 已提交
1195
try {
D
duanweiling 已提交
1196
    data_preferences.getPreferences(this.context, 'mystore', function (err, preferences) {
D
duanweiling 已提交
1197
        if (err) {
D
duanweiling 已提交
1198
            console.info("Failed to get preferences.");
D
duanweiling 已提交
1199 1200
            return;
        }
D
duanweiling 已提交
1201 1202 1203 1204 1205
        let observer = function (key) {
            console.info("The key " + key + " changed.");
        }
        preferences.on('change', observer);
        preferences.put('startup', 'auto', function (err) {
D
duanweiling 已提交
1206
            if (err) {
D
duanweiling 已提交
1207
                console.info("Failed to put the value of 'startup'. Cause: " + err);
D
duanweiling 已提交
1208 1209
                return;
            }
D
duanweiling 已提交
1210 1211 1212 1213 1214 1215 1216
            console.info("Succeeded in putting the value of 'startup'.");

            preferences.flush(function (err) {
                if (err) {
                    console.info("Failed to flush. Cause: " + err);
                    return;
                }
D
duanweiling 已提交
1217
                console.info("Succeeded in flushing.");
D
duanweiling 已提交
1218 1219
            })
            preferences.off('change', observer);
D
duanweiling 已提交
1220 1221
        })
    })
D
duanweiling 已提交
1222
} catch (err) {
D
duanweiling 已提交
1223 1224
    console.info("Failed to flush. code =" + err.code + ", message =" + err.message);
}
P
PaDaBoo 已提交
1225
```
G
ge-yafang 已提交
1226 1227 1228 1229 1230

## ValueType

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

P
PaDaBoo 已提交
1231
**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
G
ge-yafang 已提交
1232

1233 1234 1235 1236 1237
| 类型            | 说明                           |
| --------------- | ------------------------------ |
| number          | 表示值类型为数字。             |
| string          | 表示值类型为字符串。           |
| boolean         | 表示值类型为布尔值。           |
1238 1239
| Array\<number>  | 表示值类型为数字类型的数组。   |
| Array\<boolean> | 表示值类型为布尔类型的数组。   |
1240
| Array\<string>  | 表示值类型为字符串类型的数组。 |