提交 7aae1573 编写于 作者: zyjhandsome's avatar zyjhandsome

1、TS文件修改为TypeScript文件。

2、补充应用进程和线程的命令查看方式。
3、在使用定时定点刷新功能之前,增加一个使能开关的说明。
Signed-off-by: zyjhandsome's avatarzyjhandsome <zyjhandsome@126.com>
上级 9efd4487
......@@ -12,21 +12,21 @@ DevEco Studio默认工程中未自动生成AbilityStage,如需要使用Ability
1. 在工程Module对应的ets目录下,右键选择“New &gt; Directory”,新建一个目录并命名为myabilitystage。
2. 在myabilitystage目录,右键选择“New &gt; ts File”,新建一个TS文件并命名为MyAbilityStage.ts。
2. 在myabilitystage目录,右键选择“New &gt; TypeScript File”,新建一个TypeScript文件并命名为MyAbilityStage.ts。
3. 打开MyAbilityStage.ts文件,导入AbilityStage的依赖包,自定义类继承AbilityStage并加上需要的生命周期回调,示例中增加了一个onCreate()生命周期回调。
3. 打开MyAbilityStage.ts文件,导入AbilityStage的依赖包,自定义类继承AbilityStage并加上需要的生命周期回调,示例中增加了一个`onCreate()`生命周期回调。
```ts
import AbilityStage from '@ohos.app.ability.AbilityStage';
export default class MyAbilityStage extends AbilityStage {
onCreate() {
// 应用的HAP在首次加载的时,为该Module初始化操作
}
onAcceptWant(want) {
// 仅specified模式下触发
return "MyAbilityStage";
}
onCreate() {
// 应用的HAP在首次加载的时,为该Module初始化操作
}
onAcceptWant(want) {
// 仅specified模式下触发
return "MyAbilityStage";
}
}
```
......@@ -42,28 +42,26 @@ DevEco Studio默认工程中未自动生成AbilityStage,如需要使用Ability
}
```
[AbilityStage](../reference/apis/js-apis-app-ability-abilityStage.md)拥有[`onCreate()`](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageoncreate)生命周期回调和[`onAcceptWant()`](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageonacceptwant)[`onConfigurationUpdated()`](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageonconfigurationupdate)[`onMemoryLevel()`](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageonmemorylevel)事件回调。
[AbilityStage](../reference/apis/js-apis-app-ability-abilityStage.md)拥有[onCreate()](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageoncreate)生命周期回调和[onAcceptWant()](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageonacceptwant)[onConfigurationUpdated()](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageonconfigurationupdate)[onMemoryLevel()](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageonmemorylevel)事件回调。
- [`onCreate()`](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageoncreate)生命周期回调:在开始加载对应Module的第一个UIAbility实例之前会先创建AbilityStage,并在AbilityStage创建完成之后执行其onCreate()生命周期回调。AbilityStage模块提供在Module加载的时候,通知开发者,可以在此进行该Module的初始化(如资源预加载,线程创建等)能力。
- [onCreate()](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageoncreate)生命周期回调:在开始加载对应Module的第一个UIAbility实例之前会先创建AbilityStage,并在AbilityStage创建完成之后执行其onCreate()生命周期回调。AbilityStage模块提供在Module加载的时候,通知开发者,可以在此进行该Module的初始化(如资源预加载,线程创建等)能力
- [`onAcceptWant()`](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageonacceptwant)事件回调:UIAbility[指定实例模式(specified)](uiability-launch-type.md#specified启动模式)启动时候触发的事件回调,具体使用请参见[UIAbility启动模式综述](uiability-launch-type.md)
- [onAcceptWant()](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageonacceptwant)事件回调:UIAbility[指定实例模式(specified)](uiability-launch-type.md#specified启动模式)启动时候触发的事件回调,具体使用请参见[UIAbility启动模式综述](uiability-launch-type.md)
- [`onConfigurationUpdated()`](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageonconfigurationupdate)事件回调:当系统全局配置发生变更时触发的事件,系统语言、深浅色等,配置项目前均定义在[`Configuration`](../reference/apis/js-apis-app-ability-configuration.md)类中
- [onConfigurationUpdated()](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageonconfigurationupdate)事件回调:当系统全局配置发生变更时触发的事件,系统语言、深浅色等,配置项目前均定义在[Configuration](../reference/apis/js-apis-app-ability-configuration.md)类中。
- [onMemoryLevel()](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageonmemorylevel)事件回调:当系统调整内存时触发的事件。
- [`onMemoryLevel()`](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageonmemorylevel)事件回调:当系统调整内存时触发的事件。
应用被切换到后台时,系统会将在后台的应用保留在缓存中。即使应用处于缓存中,也会影响系统整体性能。当系统资源不足时,系统会通过多种方式从应用中回收内存,必要时会完全停止应用,从而释放内存用于执行关键任务。为了进一步保持系统内存的平衡,避免系统停止用户的应用进程,可以在AbilityStage中的onMemoryLevel()生命周期回调中订阅系统内存的变化情况,释放不必要的资源。
应用被切换到后台时,系统会将在后台的应用保留在缓存中。即使应用处于缓存中,也会影响系统整体性能。当系统资源不足时,系统会通过多种方式从应用中回收内存,必要时会完全停止应用,从而释放内存用于执行关键任务。为了进一步保持系统内存的平衡,避免系统停止用户的应用进程,可以在AbilityStage中的`onMemoryLevel()`生命周期回调中订阅系统内存的变化情况,释放不必要的资源。
```ts
import AbilityStage from '@ohos.app.ability.AbilityStage';
export default class MyAbilityStage extends AbilityStage {
onMemoryLevel(level) {
// 根据系统可用内存的变化情况,释放不必要的内存
}
onMemoryLevel(level) {
// 根据系统可用内存的变化情况,释放不必要的内存
}
}
```
# 定时刷新和定点刷新
在使用定时和定点刷新功能之前,需要在form_config.json配置文件中设置`updateEnabled`字段为`true`,以启用周期性刷新功能。
当前卡片框架提供了如下几种按时间刷新卡片的方式:
- 定时刷新:表示每隔一段时间刷新卡片内容,在form_config.json文件中配置,详见[updateDuration](arkts-ui-widget-configuration.md)字段。例如,每小时刷新一次卡片内容。注意:updateDuration(定时刷新)优先级比scheduledUpdateTime(定点刷新)高,配置定时刷新后,定点刷新将失效。
- 定时刷新:表示每隔一段时间刷新卡片内容,在form_config.json文件中配置,详见[updateDuration](arkts-ui-widget-configuration.md)字段。例如,每小时刷新一次卡片内容。
> **说明:**
>
> 当配置了updateDuration(定时刷新)后,该设置会优先于scheduledUpdateTime(定点刷新)生效,即使同时配置了两者,定点刷新也会被忽略。
```json
{
......@@ -29,11 +34,12 @@
]
}
```
- 定点刷新:表示每天在某个时间点刷新,在form_config.json文件中配置,详见[scheduledUpdateTime](arkts-ui-widget-configuration.md)字段。例如,每天在10:30更新卡片内容。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 当同时配置了定时刷新(updateDuration)和定点刷新(scheduledUpdateTime)时,定时刷新的优先级更高。如果想要配置定点刷新,则需要将updateDuration配置为0。
> **说明:**
>
> 当同时配置了定时刷新(updateDuration)和定点刷新(scheduledUpdateTime)时,定时刷新的优先级更高。如果想要配置定点刷新,则需要将updateDuration配置为0。
```json
{
......@@ -58,7 +64,7 @@
]
}
```
- 下次刷新:通过[setFormNextRefreshTime](../reference/apis/js-apis-app-form-formProvider.md#setformnextrefreshtime)接口指定卡片的下一次刷新时间(最短时间5分钟),例如,在接口调用的5分钟后刷新卡片内容。
```ts
......
......@@ -15,7 +15,8 @@ OpenHarmony的进程模型如下图所示:
> 说明:
>
> 仅系统应用支持构建ServiceExtensionAbility和DataShareExtensionAbility。
> - 仅系统应用支持构建ServiceExtensionAbility和DataShareExtensionAbility。
> - 执行`hdc shell`命令,进入设备的shell命令行。在shell命令行中,执行`ps -ef`命令,可以查看所有正在运行的进程信息。
在上述模型基础上,对于系统应用可以通过申请多进程权限(如下图所示),为指定HAP配置一个自定义进程名,该HAP中的UIAbility、DataShareExtensionAbility、ServiceExtensionAbility就会运行在自定义进程中。不同的HAP可以通过配置不同的进程名运行在不同进程中。
......
......@@ -2,24 +2,22 @@
OpenHarmony应用中每个进程都会有一个主线程,主线程有如下职责:
1. 负责管理其他线程
在OpenHarmony应用中,每个进程都会有一个主线程,主线程具有以下职责:
2. 同应用多个UIAbility组件共用一个主线程
1. 管理其他线程,包括Worker线程。
3. 输入事件分发
4. UI绘制
5. 应用代码回调(事件处理,生命周期)
6. 接收Worker发送的消息
除主线程外,还有一类与主线程并行的独立线程Worker,主要用于执行耗时操作,但不可以直接操作UI。Worker线程在主线程中创建,与主线程相互独立。最多可以创建7个Worker:
2. 与应用中多个UIAbility组件共用一个主线程。
3. 分发输入事件。
4. 执行UI绘制。
5. 处理应用代码的回调,包括事件处理和生命周期管理。
6. 接收Worker发送的消息。
除了主线程外,还有一类独立的Worker线程,用于执行耗时操作。Worker线程在主线程中创建,与主线程相互独立,但不能直接操作UI。最多可以创建7个Worker线程。
![thread-model-stage](figures/thread-model-stage.png)
基于OpenHarmony的线程模型,不同的业务功能运行在不同的线程上,业务功能的交互就需要线程间通信。同一个进程内,线程间通信目前主要有Emitter和Worker两种方式,其中Emitter主要适用于线程间的事件同步, Worker主要用于新开一个线程执行耗时任务。
**说明:**
* Stage模型只提供了主线程和Worker线程,Emitter主要用于主线程内或者主线程和Worker线程的事件同步。
\ No newline at end of file
> **说明:**
>
> - Stage模型只提供了主线程和Worker线程,Emitter主要用于主线程内或者主线程和Worker线程的事件同步。
> - 执行`hdc shell`命令,进入设备的shell命令行。在shell命令行中,执行`ps -p <pid> -T`命令,可以查看指定应用进程的线程信息。其中,`<pid>`为需要指定的应用进程的进程ID。
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册