• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 生命周期
2<!--Kit: ArkUI-->
3<!--Subsystem: ArkUI-->
4<!--Owner: @mayaolll-->
5<!--Designer: @jiangdayuan-->
6<!--Tester: @lxl007-->
7<!--Adviser: @HelloCrease-->
8
9## 应用生命周期
10
11app.js中可以定义如下应用生命周期函数:
12
13| 属性 | 类型 | 描述 | 触发时机 |
14| -------- | -------- | -------- | -------- |
15| onCreate | ()&nbsp;=&gt;&nbsp;void | 应用创建 | 当应用创建时调用。 |
16| onShow<sup>6+</sup> | ()&nbsp;=&gt;&nbsp;void | 应用处于前台 | 当应用处于前台时触发。 |
17| onHide<sup>6+</sup> | ()&nbsp;=&gt;&nbsp;void | 应用处于后台 | 当应用处于后台时触发。 |
18| onDestroy | ()&nbsp;=&gt;&nbsp;void | 应用销毁 | 当应用退出时触发。 |
19
20
21## 页面生命周期
22
23在页面JS文件中可以定义如下页面生命周期函数:
24
25| 属性 | 类型 | 描述 | 触发时机 |
26| -------- | -------- | -------- | -------- |
27| onInit | ()&nbsp;=&gt;&nbsp;void | 页面初始化 | 页面数据初始化完成时触发,只触发一次。 |
28| onReady | ()&nbsp;=&gt;&nbsp;void | 页面创建完成 | 页面创建完成时触发,只触发一次。 |
29| onShow | ()&nbsp;=&gt;&nbsp;void | 页面显示 | 页面显示时触发。 |
30| onHide | ()&nbsp;=&gt;&nbsp;void | 页面消失 | 页面消失时触发。 |
31| onDestroy | ()&nbsp;=&gt;&nbsp;void | 页面销毁 | 页面销毁时触发。 |
32| onBackPress | ()&nbsp;=&gt;&nbsp;boolean | 返回按钮动作 | 当用户点击返回按钮时触发。<br/>-&nbsp;返回true表示页面自己处理返回逻辑。<br/>-&nbsp;返回false表示使用默认的返回逻辑。<br/>-&nbsp;不返回值会作为false处理。 |
33| onActive()<sup>5+</sup> | ()&nbsp;=&gt;&nbsp;void | 页面激活 | 页面激活时触发。 |
34| onInactive()<sup>5+</sup> | ()&nbsp;=&gt;&nbsp;void | 页面暂停 | 页面暂停时触发。 |
35| onNewRequest()<sup>5+</sup> | ()&nbsp;=&gt;&nbsp;void | FA重新请求 | FA已经启动时收到新的请求后触发。 |
36
37页面A的生命周期接口的调用顺序
38- 打开页面A:onInit() -&gt; onReady() -&gt; onShow()
39
40- 在页面A打开页面B:onHide()
41
42- 从页面B返回页面A:onShow()
43
44- 退出页面A:onBackPress() -&gt; onHide() -&gt; onDestroy()
45
46- 页面隐藏到后台运行:onInactive() -&gt; onHide()
47
48- 页面从后台运行恢复到前台:onShow() -&gt; onActive()
49
50![zh-cn_image_0000001147417424](figures/zh-cn_image_0000001147417424.png)
51
52
53