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 |应用存储。 |