1# 应用级变量的状态管理(系统接口)
2
3
4状态管理模块提供了应用程序的数据存储能力、持久化数据管理能力、UIAbility数据存储能力和应用程序需要的环境状态。
5
6
7>**说明:**
8>
9>本模块首批接口从API version 7开始支持,后续版本的新增接口,采用上角标单独标记接口的起始版本。
10>
11>当前页面仅包含本模块的系统接口,其他公开接口参见[应用级变量的状态管理](./ts-state-management.md)。
12
13## SubscribedAbstractProperty\<T\>
14
15**卡片能力:** 从API version 9开始,支持在ArkTS卡片中使用。
16
17**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
18
19**系统能力:** SystemCapability.ArkUI.ArkUI.Full
20
21### subscribers\_
22
23protected subscribers_: Set\<number\>;
24
25订阅者集合。
26
27**系统能力:** SystemCapability.ArkUI.ArkUI.Full
28
29**返回值:**
30
31|类型   |说明       |
32|-----------|--------------|
33|Set\<number\>  |返回Set集合。 |
34
35### id\_
36
37private id_;
38
39私有成员变量id_。
40
41**系统能力:** SystemCapability.ArkUI.ArkUI.Full
42
43### info\_
44
45private info\_\?;
46
47变量信息。
48
49**系统能力:** SystemCapability.ArkUI.ArkUI.Full
50
51### constructor
52
53constructor(subscribeMe?: IPropertySubscriber,info?: string,);
54
55构造函数。
56
57**系统能力:** SystemCapability.ArkUI.ArkUI.Full
58
59**参数:**
60
61|参数名   |类型   |必填   |说明             |
62|---------|-----------|------------|--------------|
63|subscribeMe   |[IPropertySubscriber](#ipropertysubscriber)   |否   |变量属性。    |
64|info   |string   |否   |变量信息。   |
65
66### id
67
68id(): number;
69
70获取id时调用。
71
72**系统能力:** SystemCapability.ArkUI.ArkUI.Full
73
74**返回值:**
75
76|类型   |说明       |
77|-----------|--------------|
78|number  |返回id。 |
79
80### createTwoWaySync
81
82createTwoWaySync(subscribeMe?: IPropertySubscriber, info?: string): SyncedPropertyTwoWay\<T\>;
83
84创建双向同步时调用。
85
86**系统能力:** SystemCapability.ArkUI.ArkUI.Full
87
88**参数:**
89
90|参数名   |类型   |必填   |说明             |
91|---------|-----------|------------|--------------|
92|subscribeMe   |[IPropertySubscriber](#ipropertysubscriber)   |否   |变量属性。    |
93|info   |string   |否   |变量信息。   |
94
95**返回值:**
96
97|类型   |说明       |
98|-----------|--------------|
99|[SyncedPropertyTwoWay\<T\>](#syncedpropertytwowayt)  |返回双向同步属性。 |
100
101### createOneWaySync
102
103createOneWaySync(subscribeMe?: IPropertySubscriber, info?: string): SyncedPropertyOneWay\<T\>;
104
105创建单向同步时调用。
106
107**系统能力:** SystemCapability.ArkUI.ArkUI.Full
108
109**参数:**
110
111|参数名   |类型   |必填   |说明             |
112|---------|-----------|------------|--------------|
113|subscribeMe   |[IPropertySubscriber](#ipropertysubscriber)   |否   |变量属性。    |
114|info   |string   |否   |变量信息。   |
115
116**返回值:**
117
118|类型   |说明       |
119|-----------|--------------|
120|[SyncedPropertyOneWay\<T\>](#syncedpropertytwowayt)  |返回单向同步属性。 |
121
122### unlinkSuscriber
123
124unlinkSuscriber(subscriberId: number): void;
125
126变量解除订阅时调用。
127
128**系统能力:** SystemCapability.ArkUI.ArkUI.Full
129
130**参数:**
131
132|参数名   |类型   |必填   |说明             |
133|---------|-----------|------------|--------------|
134|subscriberId   |number   |是   |变量id。    |
135
136### notifyHasChanged
137
138protected notifyHasChanged(newValue: T): void;
139
140通知变化时调用。
141
142**系统能力:** SystemCapability.ArkUI.ArkUI.Full
143
144**参数:**
145
146|参数名   |类型   |必填   |说明             |
147|---------|-----------|------------|--------------|
148|newValue   |T   |是   |更改后的新值。    |
149
150### notifyPropertyRead
151
152protected notifyPropertyRead(): void;
153
154通知读取时调用。
155
156**系统能力:** SystemCapability.ArkUI.ArkUI.Full
157
158### numberOfSubscrbers
159
160numberOfSubscrbers(): number;
161
162获取订阅者数量时调用。
163
164**系统能力:** SystemCapability.ArkUI.ArkUI.Full
165
166**返回值:**
167
168|类型   |说明       |
169|-----------|--------------|
170|number  |返回订阅者数量。 |
171
172## IPropertySubscriber
173
174**系统能力:** SystemCapability.ArkUI.ArkUI.Full
175
176### id
177
178id(): number;
179
180获取id时调用。
181
182**系统能力:** SystemCapability.ArkUI.ArkUI.Full
183
184**返回值:**
185
186|类型   |说明       |
187|-----------|--------------|
188|number  |返回变量id。 |
189
190### aboutToBeDeleted
191
192aboutToBeDeleted(owningView?: IPropertySubscriber): void;
193
194销毁时调用。
195
196**系统能力:** SystemCapability.ArkUI.ArkUI.Full
197
198**参数:**
199
200|参数名   |类型   |必填   |说明             |
201|---------|-----------|------------|--------------|
202|owningView   |[IPropertySubscriber](#ipropertysubscriber)   |否   |所在自定义组件。    |
203
204## SyncedPropertyTwoWay\<T\>
205
206继承自[SubscribedAbstractProperty\<T\>](#subscribedabstractpropertyt)。用来定义变量状态的值。
207
208**系统能力:** SystemCapability.ArkUI.ArkUI.Full
209
210### source\_
211
212private source_;
213
214双向同步属性的数据源。
215
216**系统能力:** SystemCapability.ArkUI.ArkUI.Full
217
218### constructor
219
220constructor(source: SubscribedAbstractProperty\<T\>, subscribeMe?: IPropertySubscriber, info?: string);
221
222构造函数参数。
223
224**系统能力:** SystemCapability.ArkUI.ArkUI.Full
225
226**参数:**
227
228|参数名   |类型   |必填   |说明             |
229|---------|-----------|------------|--------------|
230|source   |[SubscribedAbstractProperty\<T\>](#subscribedabstractpropertyt)   |是   |双向同步属性的数据源。    |
231|subscribeMe   |[IPropertySubscriber](#ipropertysubscriber)   |否   |订阅者。   |
232|info  |string   |否   |订阅者信息。   |
233
234### aboutToBeDeleted
235
236aboutToBeDeleted(unsubscribeMe?: IPropertySubscriber): void;
237
238销毁时调用。
239
240**系统能力:** SystemCapability.ArkUI.ArkUI.Full
241
242**参数:**
243
244|参数名   |类型   |必填   |说明             |
245|---------|-----------|------------|--------------|
246|unsubscribeMe   |[IPropertySubscriber](#ipropertysubscriber)   |否   |被取消的订阅者。    |
247
248### hasChanged
249
250hasChanged(newValue: T): void;
251
252变化时调用。
253
254**系统能力:** SystemCapability.ArkUI.ArkUI.Full
255
256**参数:**
257
258|参数名   |类型   |必填   |说明   |
259|---------|-----------|------------|--------------|
260|newValue   |T   |是   |T类型实例。     |
261
262### get
263
264get(): T;
265
266获取数据时调用。
267
268**系统能力:** SystemCapability.ArkUI.ArkUI.Full
269
270**返回值:**
271
272|类型   |说明     |
273|------|------------|
274|T   |T类型实例。    |
275
276### set
277
278set(newValue: T): void;
279
280赋值时调用。
281
282**系统能力:** SystemCapability.ArkUI.ArkUI.Full
283
284**参数:**
285
286|参数名   |类型   |必填   |说明             |
287|---------|-----------|------------|--------------|
288|newValue   |T   |是   |T类型实例。    |
289
290## SyncedPropertyOneWay\<T\>
291
292继承自[SubscribedAbstractProperty\<T\>](#subscribedabstractpropertyt)。用来定义父组件的状态值。
293
294**系统能力:** SystemCapability.ArkUI.ArkUI.Full
295
296### wrappedValue\_
297
298private wrappedValue_;
299
300单向绑定时的值。
301
302**系统能力:** SystemCapability.ArkUI.ArkUI.Full
303
304### source\_
305
306private source_;
307
308双向同步属性的数据源。
309
310**系统能力:** SystemCapability.ArkUI.ArkUI.Full
311
312### constructor
313
314constructor(source: SubscribedAbstractProperty\<T\>, subscribeMe?: IPropertySubscriber, info?: string);
315
316构造函数参数。
317
318**系统能力:** SystemCapability.ArkUI.ArkUI.Full
319
320**参数:**
321
322|参数名   |类型   |必填   |说明             |
323|---------|-----------|------------|--------------|
324|source   |[SubscribedAbstractProperty\<T\>](#subscribedabstractpropertyt)   |是   |单向同步属性的数据源。    |
325|subscribeMe   |[IPropertySubscriber](#ipropertysubscriber)   |否   |订阅者。   |
326|info  |string   |否   |订阅者信息。   |
327
328### aboutToBeDeleted
329
330aboutToBeDeleted(unsubscribeMe?: IPropertySubscriber): void;
331
332销毁时调用。
333
334**系统能力:** SystemCapability.ArkUI.ArkUI.Full
335
336**参数:**
337
338|参数名   |类型   |必填   |说明             |
339|---------|-----------|------------|--------------|
340|unsubscribeMe   |[IPropertySubscriber](#ipropertysubscriber)   |否   |被取消的订阅者。    |
341
342### hasChanged
343
344hasChanged(newValue: T): void;
345
346变化时调用。
347
348**系统能力:** SystemCapability.ArkUI.ArkUI.Full
349
350**参数:**
351
352|参数名   |类型   |必填   |说明   |
353|---------|-----------|------------|--------------|
354|newValue   |T   |是   |T类型实例。     |
355
356### get
357
358get(): T;
359
360获取数据源时调用。
361
362**系统能力:** SystemCapability.ArkUI.ArkUI.Full
363
364**返回值:**
365
366|类型   |说明     |
367|------|------------|
368|T   |T类型实例。    |
369
370### set
371
372set(newValue: T): void;
373
374赋值时调用。
375
376**系统能力:** SystemCapability.ArkUI.ArkUI.Full
377
378**参数:**
379
380|参数名   |类型   |必填   |说明             |
381|---------|-----------|------------|--------------|
382|newValue   |T   |是   |T类型实例。    |
383
384## ISinglePropertyChangeSubscriber\<T\>
385
386继承自[IPropertySubscriber](#ipropertysubscriber)。用来定义变量。
387
388**系统能力:** SystemCapability.ArkUI.ArkUI.Full
389
390### hasChanged
391
392hasChanged(newValue: T): void;
393
394变化时调用。
395
396**系统能力:** SystemCapability.ArkUI.ArkUI.Full
397
398**参数:**
399
400|参数名   |类型   |必填   |说明             |
401|---------|-----------|------------|--------------|
402|newValue   |T   |是   |T类型实例。    |
403
404## SubscribaleAbstract
405
406**系统能力:** SystemCapability.ArkUI.ArkUI.Full
407
408### owningProperties\_
409
410private owningProperties_: Set\<number\>;
411
412返回所持有的属性。
413
414**系统能力:** SystemCapability.ArkUI.ArkUI.Full
415
416**返回值:**
417
418|类型   |说明     |
419|------|------------|
420|Set\<number\>   |返回Set集合。    |
421
422### constructor
423
424constructor();
425
426构造函数。
427
428**系统能力:** SystemCapability.ArkUI.ArkUI.Full
429
430### notifyPropertyHasChanged
431
432protected notifyPropertyHasChanged(propName: string, newValue: any): void;
433
434当通知属性更改时调用。
435
436**系统能力:** SystemCapability.ArkUI.ArkUI.Full
437
438**参数:**
439
440|参数名   |类型   |必填   |说明             |
441|---------|-----------|------------|--------------|
442|propName   |string   |是   |属性名称。    |
443|newValue   |any   |否   |更改的新值。   |
444
445### addOwningProperty
446
447public addOwningProperty(subscriber: IPropertySubscriber): void;
448
449添加持有的属性。
450
451**系统能力:** SystemCapability.ArkUI.ArkUI.Full
452
453**参数:**
454
455|参数名   |类型   |必填   |说明             |
456|---------|-----------|------------|--------------|
457|subscriber   |[IPropertySubscriber](#ipropertysubscriber)   |是   |订阅者。    |
458
459### removeOwningProperty
460
461public removeOwningProperty(property: IPropertySubscriber): void;
462
463删除已拥有的属性时调用。
464
465**系统能力:** SystemCapability.ArkUI.ArkUI.Full
466
467**参数:**
468
469|参数名   |类型   |必填   |说明             |
470|---------|-----------|------------|--------------|
471|property   |[IPropertySubscriber](#ipropertysubscriber)   |是   |要删除的属性。    |
472
473### removeOwningPropertyById
474
475public removeOwningPropertyById(subscriberId: number): void;
476
477使用id删除已拥有的属性时调用。
478
479**系统能力:** SystemCapability.ArkUI.ArkUI.Full
480
481**参数:**
482
483|参数名   |类型   |必填   |说明             |
484|---------|-----------|------------|--------------|
485|subscriberId   |number   |是   |要删除的属性id。    |
486
487## Environment
488
489**系统能力:** SystemCapability.ArkUI.ArkUI.Full
490
491### constructor
492
493constructor();
494
495构造函数。
496
497**系统能力:** SystemCapability.ArkUI.ArkUI.Full
498
499## PersistentStorage
500
501**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
502
503**系统能力:** SystemCapability.ArkUI.ArkUI.Full
504
505### constructor
506
507constructor(appStorage: AppStorage, storage: Storage);
508
509构造函数参数。
510
511**系统能力:** SystemCapability.ArkUI.ArkUI.Full
512
513**参数:**
514
515|参数名   |类型   |必填   |说明             |
516|---------|-----------|------------|--------------|
517|appStorage   |AppStorage   |是   |应用存储。    |
518|storage   |Storage   |是   |存储。    |
519
520## appStorage
521
522declare const appStorage: AppStorage;
523
524应用存储。
525
526**系统能力:** SystemCapability.ArkUI.ArkUI.Full
527
528|类型    |说明          |
529|----------|------------|
530|AppStorage   |应用存储。  |