Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
49e4d13e
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
49e4d13e
编写于
7月 14, 2023
作者:
O
openharmony_ci
提交者:
Gitee
7月 14, 2023
浏览文件
操作
浏览文件
下载
差异文件
!20865 uiability组件与ui的数据同步,补充使用限制
Merge pull request !20865 from 张亚菲/zyf
上级
b40592f0
0c27bdb1
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
11 addition
and
9 deletion
+11
-9
zh-cn/application-dev/application-models/uiability-data-sync-with-ui.md
...ion-dev/application-models/uiability-data-sync-with-ui.md
+11
-9
未找到文件。
zh-cn/application-dev/application-models/uiability-data-sync-with-ui.md
浏览文件 @
49e4d13e
...
...
@@ -4,15 +4,15 @@
基于OpenHarmony的应用模型,可以通过以下几种方式来实现UIAbility组件与UI之间的数据同步。
-
[
使用EventHub进行数据通信
](
#使用eventhub进行数据通信
)
:在基类Context中提供了EventHub对象,可以通过发布订阅方式来实现事件的传递。在事件传递前,订阅者需要先进行订阅,当发布者发布事件时,订阅者将接收到事件并进行相应处理。
-
[
使用globalThis进行数据同步
](
#使用globalthis进行数据同步
)
:在ArkTS引擎实例内部,globalThis是一个全局对象,可以被
UIAbility、ExtensionAbility、Page等组件
访问。
-
[
使用globalThis进行数据同步
](
#使用globalthis进行数据同步
)
:在ArkTS引擎实例内部,globalThis是一个全局对象,可以被
ArkTS引擎实例内的UIAbility组件、ExtensionAbility组件和ArkUI页面(Page)
访问。
-
[
使用AppStorage/LocalStorage进行数据同步
](
#使用appstorage/localstorage进行数据同步
)
:ArkUI提供了AppStorage和LocalStorage两种应用级别的状态管理方案,可用于实现应用级别和UIAbility级别的数据同步。
## 使用EventHub进行数据通信
[
EventHub
](
../reference/apis/js-apis-inner-application-eventHub.md
)
为UIAbility组件
/ExtensionAbility组件
提供了事件机制,使它们能够进行订阅、取消订阅和触发事件等数据通信能力。
[
EventHub
](
../reference/apis/js-apis-inner-application-eventHub.md
)
为UIAbility组件提供了事件机制,使它们能够进行订阅、取消订阅和触发事件等数据通信能力。
在
[
基类Context
](
application-context-stage.md
)
中,提供了EventHub对象,
使用EventHub实现UIAbility与UI之间的数据通信需要先获取EventHub对象。
本章节将以此为例进行说明。
在
[
基类Context
](
application-context-stage.md
)
中,提供了EventHub对象,
可用于在UIAbility组件实例内通信。使用EventHub实现UIAbility与UI之间的数据通信需要先获取EventHub对象,
本章节将以此为例进行说明。
1.
在UIAbility中调用
[
`eventHub.on()`
](
../reference/apis/js-apis-inner-application-eventHub.md#eventhubon
)
方法注册一个自定义事件“event1”,
[
`eventHub.on()`
](
../reference/apis/js-apis-inner-application-eventHub.md#eventhubon
)
有如下两种调用方式,使用其中一种即可。
...
...
@@ -89,7 +89,7 @@
globalThis是
[
ArkTS引擎实例
](
thread-model-stage.md
)
内部的一个全局对象,引擎内部的UIAbility/ExtensionAbility/Page都可以使用,因此可以使用globalThis对象进行数据同步。
**图1**
使用globalThis进行数据同步
**图1**
使用globalThis进行数据同步
![
globalThis1
](
figures/globalThis1.png
)
...
...
@@ -123,14 +123,14 @@ globalThis是[ArkTS引擎实例](thread-model-stage.md)内部的一个全局对
```
ts
let
entryAbilityWant
;
@
Entry
@
Component
struct
Index
{
aboutToAppear
()
{
entryAbilityWant
=
globalThis
.
entryAbilityWant
;
}
// 页面展示
build
()
{
...
...
...
@@ -160,7 +160,7 @@ globalThis是[ArkTS引擎实例](thread-model-stage.md)内部的一个全局对
```
ts
import
UIAbility
from
'
@ohos.app.ability.UIAbility
'
export
default
class
UIAbilityB
extends
UIAbility
{
onCreate
(
want
,
launch
)
{
// UIAbilityB从globalThis读取name并输出
...
...
@@ -193,7 +193,7 @@ globalThis是[ArkTS引擎实例](thread-model-stage.md)内部的一个全局对
```
ts
import
Extension
from
'
@ohos.app.ability.ServiceExtensionAbility
'
export
default
class
ServiceExtAbility
extends
Extension
{
onCreate
(
want
)
{
// ServiceExtAbility从globalThis读取name并输出
...
...
@@ -206,11 +206,13 @@ globalThis是[ArkTS引擎实例](thread-model-stage.md)内部的一个全局对
### globalThis使用的注意事项
**图2**
globalThis注意事项
**图2**
globalThis注意事项
![
globalThis2
](
figures/globalThis2.png
)
-
Stage模型下进程内的UIAbility组件共享ArkTS引擎实例,使用globalThis时需要避免存放相同名称的对象。例如UIAbilityA和UIAbilityB可以使用globalThis共享数据,在存放相同名称的对象时,先存放的对象会被后存放的对象覆盖。
-
globalThis不支持跨进程使用,不同进程的UIAbility组件和ExtensionAbility组件无法使用globalThis共享数据,进程模型及进程间通信机制见
[
进程模型概述
](
./process-model-stage.md#进程模型概述
)
。
-
FA模型因为每个UIAbility组件之间引擎隔离,不会存在该问题。
-
对于绑定在globalThis上的对象,其生命周期与ArkTS虚拟机实例相同,建议在使用完成之后将其赋值为null,以减少对应用内存的占用。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录