Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
550ba4f3
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看板
提交
550ba4f3
编写于
8月 25, 2023
作者:
zyjhandsome
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1)修复一个图片展示问题;2)UIAbility热启动示例代码优化
Signed-off-by:
zyjhandsome
<
zyjhandsome@126.com
>
上级
5baa1066
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
24 addition
and
23 deletion
+24
-23
zh-cn/application-dev/application-models/figures/uiability-hot-start.png
...on-dev/application-models/figures/uiability-hot-start.png
+0
-0
zh-cn/application-dev/application-models/figures/uiability_not_first_started.png
...pplication-models/figures/uiability_not_first_started.png
+0
-0
zh-cn/application-dev/application-models/uiability-intra-device-interaction.md
.../application-models/uiability-intra-device-interaction.md
+24
-23
未找到文件。
zh-cn/application-dev/application-models/figures/uiability-hot-start.png
0 → 100644
浏览文件 @
550ba4f3
86.0 KB
zh-cn/application-dev/application-models/figures/uiability_not_first_started.png
已删除
100644 → 0
浏览文件 @
5baa1066
84.3 KB
zh-cn/application-dev/application-models/uiability-intra-device-interaction.md
浏览文件 @
550ba4f3
...
...
@@ -388,7 +388,16 @@ context.startAbility(want, options).then(() => {
## 启动UIAbility的指定页面
一个UIAbility可以对应多个页面,在不同的场景下启动该UIAbility时需要展示不同的页面,例如从一个UIAbility的页面中跳转到另外一个UIAbility时,希望启动目标UIAbility的指定页面。本文主要讲解
[
目标UIAbility冷启动
](
#目标uiability冷启动
)
和
[
目标UIAbility热启动
](
#目标uiability热启动
)
两种启动指定页面的场景,以及在讲解启动指定页面之前会讲解到在调用方如何指定启动页面。
### 概述
一个UIAbility可以对应多个页面,在不同的场景下启动该UIAbility时需要展示不同的页面,例如从一个UIAbility的页面中跳转到另外一个UIAbility时,希望启动目标UIAbility的指定页面。
UIAbility的启动分为两种情况:UIAbility冷启动和UIAbility热启动。
-
UIAbility冷启动:指的是UIAbility实例处于完全关闭状态下被启动,这需要完整地加载和初始化UIAbility实例的代码、资源等。
-
UIAbility热启动:指的是UIAbility实例已经启动并在前台运行过,由于某些原因切换到后台,再次启动该UIAbility实例,这种情况下可以快速恢复UIAbility实例的状态。
本文主要讲解
[
目标UIAbility冷启动
](
#目标uiability冷启动
)
和
[
目标UIAbility热启动
](
#目标uiability热启动
)
两种启动指定页面的场景,以及在讲解启动指定页面之前会讲解到在调用方如何指定启动页面。
### 调用方UIAbility指定启动页面
...
...
@@ -460,22 +469,8 @@ export default class FuncAbility extends UIAbility {
4.
用户点击联系人张三的短信按钮,会重新启动短信应用的UIAbility实例。
5.
由于短信应用的UIAbility实例已经启动过了,此时会触发该UIAbility的
`onNewWant()`
回调,而不会再走
`onCreate()`
和
`onWindowStageCreate()`
等初始化逻辑。
```
mermaid
sequenceDiagram
Participant U as 用户
Participant S as 短信应用
Participant C as 联系人应用
U->>S: 打开短信应用
S-->>U: 显示短信应用主页
U->>S: 将设备回到桌面界面
S->>S: 短信应用进入后台
U->>C: 打开联系人应用
C-->>U: 显示联系人应用界面
U->>C: 点击联系人张三的短信按钮
C->>S: 构造Want启动短信应用
S-->>U: 显示给张三发短信的页面
```
图1 目标UIAbility热启动
![](
figures/uiability-hot-start.png
)
开发步骤如下所示。
...
...
@@ -499,15 +494,21 @@ S-->>U: 显示给张三发短信的页面
// Main window is created, set main page for this ability
...
let
windowClass
:
window
.
Window
;
windowStage
.
getMainWindow
((
err
,
data
)
=>
{
windowStage
.
loadContent
(
url
,
(
err
,
data
)
=>
{
if
(
err
.
code
)
{
console
.
error
(
`Failed to obtain the main window. Code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
return
;
}
windowClass
=
data
;
this
.
uiContext
=
windowClass
.
getUIContext
();
})
let
windowClass
:
window
.
Window
;
windowStage
.
getMainWindow
((
err
,
data
)
=>
{
if
(
err
.
code
)
{
console
.
error
(
TAG
,
`Failed to obtain the main window. Code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
return
;
}
windowClass
=
data
;
this
.
uiContext
=
windowClass
.
getUIContext
();
})
});
}
}
```
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录