未验证 提交 acdc068c 编写于 作者: 朱天怡 提交者: Gitee

bugfix

Signed-off-by: N朱天怡 <zhutianyi2@huawei.com>
上级 eb38fb50
## 长时任务 # 长时任务
### 场景说明 ## 场景说明
如果应用需要在后台长时间执行用户可感知的任务,如后台播放音乐、导航、设备连接、VoIP等,则使用长时任务避免进入挂起(Suspend)状态。 如果应用需要在后台长时间执行用户可感知的任务,如后台播放音乐、导航、设备连接、VoIP等,则使用长时任务避免进入挂起(Suspend)状态。
长时任务在后台执行没有时间限制。为了避免该机制被滥用,系统只允许申请有限个数的长时任务类型,同时会有相应的通知提示与长时任务相关联,使用户可感知,并且系统会添加相应的校验机制,确保应用是的确在执行相应的长时任务。 长时任务在后台执行没有时间限制。为了避免该机制被滥用,系统只允许申请有限个数的长时任务类型,同时会有相应的通知提示与长时任务相关联,使用户可感知,并且系统会添加相应的校验机制,确保应用是的确在执行相应的长时任务。
### 权限 ## 接口说明
ohos.permission.KEEP_BACKGROUND_RUNNING **表1** 长时任务主要接口
### 接口说明
**表2** 长时任务主要接口
| 接口名 | 描述 | | 接口名 | 描述 |
| ---------------------------------------- | ---------------------------- | | ---------------------------------------- | ---------------------------- |
...@@ -21,7 +17,7 @@ ohos.permission.KEEP_BACKGROUND_RUNNING ...@@ -21,7 +17,7 @@ ohos.permission.KEEP_BACKGROUND_RUNNING
其中,wantAgent的信息详见([WantAgent](../reference/apis/js-apis-wantAgent.md) 其中,wantAgent的信息详见([WantAgent](../reference/apis/js-apis-wantAgent.md)
**表3** 后台模式类型 **表2** 后台模式类型
| 参数名 | id值 | 描述 | 配置项 | | 参数名 | id值 | 描述 | 配置项 |
| ----------------------- | ---- | -------------- | --------------------- | | ----------------------- | ---- | -------------- | --------------------- |
...@@ -36,9 +32,9 @@ ohos.permission.KEEP_BACKGROUND_RUNNING ...@@ -36,9 +32,9 @@ ohos.permission.KEEP_BACKGROUND_RUNNING
| TASK_KEEPING | 9 | 计算任务(仅供特定设备使用) | taskKeeping | | TASK_KEEPING | 9 | 计算任务(仅供特定设备使用) | taskKeeping |
### 开发步骤 ## 开发步骤
基于FA模型: ### 基于FA模型
基于FA的Service Ability使用,参考[ServiceAbility开发指导](../ability/fa-serviceability.md) 基于FA的Service Ability使用,参考[ServiceAbility开发指导](../ability/fa-serviceability.md)
...@@ -46,7 +42,7 @@ ohos.permission.KEEP_BACKGROUND_RUNNING ...@@ -46,7 +42,7 @@ ohos.permission.KEEP_BACKGROUND_RUNNING
当需要与后台执行的长时任务交互时(如播放音乐等)。可以采用connectAbility()方法启动并连接Service Ability。在获取到服务的代理对象后,与服务进行通信,控制长时任务的申请和取消。 当需要与后台执行的长时任务交互时(如播放音乐等)。可以采用connectAbility()方法启动并连接Service Ability。在获取到服务的代理对象后,与服务进行通信,控制长时任务的申请和取消。
1、新建Api Version 8的工程后,在工程目录中右键选择“new” -> “Ability” -> “Service Ability” 快速创建Service Ability组件。并在config.json文件中配置长时任务权限、后台模式类型,其中Ability类型为“service”。 1、新建Api Version 8的工程后,在工程目录中右键选择“new” -> “Ability” -> “Service Ability” 快速创建Service Ability组件。并在config.json文件中配置长时任务权限ohos.permission.KEEP_BACKGROUND_RUNNING、后台模式类型,其中Ability类型为“service”。
``` ```
"module": { "module": {
...@@ -181,11 +177,11 @@ export default { ...@@ -181,11 +177,11 @@ export default {
}; };
``` ```
基于Stage模型: ### 基于Stage模型
Stage模型的相关信息参考[Stage模型综述](../ability/stage-brief.md) Stage模型的相关信息参考[Stage模型综述](../ability/stage-brief.md)
1、新建Api Version 9的工程后,在工程目录中右键选择“New” -> “Ability” 快速创建Ability组件。并在module.json5文件中配置长时任务权限、后台模式类型。 1、新建Api Version 9的工程后,在工程目录中右键选择“New” -> “Ability” 快速创建Ability组件。并在module.json5文件中配置长时任务权限ohos.permission.KEEP_BACKGROUND_RUNNING、后台模式类型。
``` ```
"module": { "module": {
......
## 短时任务 # 短时任务
### 场景说明 ## 场景说明
当应用退到后台默认有6到12秒的运行时长,超过该时间后,系统会将应用置为挂起状态。对于绝大多数应用,6到12秒的时间,足够执行一些重要的任务,但如果应用需要更多的时间,可以通过短时任务接口,扩展应用的执行时间。 当应用退到后台默认有6到12秒的运行时长,超过该时间后,系统会将应用置为挂起状态。对于绝大多数应用,6到12秒的时间,足够执行一些重要的任务,但如果应用需要更多的时间,可以通过短时任务接口,扩展应用的执行时间。
建议不要等到应用退后台后,才调用requestSuspendDelay方法申请延迟挂起,而是应该在执行任何的耗时操作前,都应该调用该接口,向系统申明扩展应用的执行时间。 建议不要等到应用退后台后,才调用requestSuspendDelay方法申请延迟挂起,而是应该在执行任何的耗时操作前,都应该调用该接口,向系统申明扩展应用的执行时间。
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
一些典型的耗时任务有,需要保存一些状态数据到本地数据库,需要打开和处理一个大型文件,需要同步一些数据到应用的云端服务器等。 一些典型的耗时任务有,需要保存一些状态数据到本地数据库,需要打开和处理一个大型文件,需要同步一些数据到应用的云端服务器等。
### 接口说明 ## 接口说明
**表1** 短时任务主要接口 **表1** 短时任务主要接口
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
| cancelSuspendDelay(requestId:&nbsp;number):&nbsp;void | 取消延迟挂起。 | | cancelSuspendDelay(requestId:&nbsp;number):&nbsp;void | 取消延迟挂起。 |
### 开发步骤 ## 开发步骤
1、当应用需要开始执行一个耗时的任务时。调用短时任务申请接口,并且在任务执行完后,调用短时任务取消接口。 1、当应用需要开始执行一个耗时的任务时。调用短时任务申请接口,并且在任务执行完后,调用短时任务取消接口。
......
...@@ -5,22 +5,9 @@ ...@@ -5,22 +5,9 @@
应用要执行对实时性要求不高的任务或持久性任务的时候,比如设备空闲时候做一次数据学习等场景,可以使用延迟调度任务,该机制在满足应用设定条件的时候,会根据系统当前状态,如内存、功耗、温度等统一决策调度时间。延迟任务调度约束见[延迟任务调度约束](./background-task-overview.md#延迟任务调度约束) 应用要执行对实时性要求不高的任务或持久性任务的时候,比如设备空闲时候做一次数据学习等场景,可以使用延迟调度任务,该机制在满足应用设定条件的时候,会根据系统当前状态,如内存、功耗、温度等统一决策调度时间。延迟任务调度约束见[延迟任务调度约束](./background-task-overview.md#延迟任务调度约束)
## 接口说明 ## 接口说明
注册相关接口包导入:
```js
import workScheduler from '@ohos.resourceschedule.workScheduler';
```
回调相关接口包导入:
```js
import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility';
```
### 延迟任务调度
**表1** workScheduler主要接口 **表1** workScheduler主要接口
> **说明:** 延迟任务调度错误码见[workScheduler错误码](../../api/errorcodes/errorcode-workScheduler.md)。
接口名 | 接口描述 接口名 | 接口描述
---------------------------------------------------------|----------------------------------------- ---------------------------------------------------------|-----------------------------------------
startWork(work: WorkInfo): void; | 延迟调度任务申请 startWork(work: WorkInfo): void; | 延迟调度任务申请
...@@ -35,7 +22,7 @@ isLastWorkTimeOut(workId: number): Promise\<boolean>;| 获取上次任务是否 ...@@ -35,7 +22,7 @@ isLastWorkTimeOut(workId: number): Promise\<boolean>;| 获取上次任务是否
**表2** WorkInfo包含参数 **表2** WorkInfo包含参数
> **说明:** WorkInfo设置参数约束见[延迟任务调度约束](./background-task-overview.md#延迟任务调度约束) WorkInfo设置参数约束见[延迟任务调度约束](./background-task-overview.md#延迟任务调度约束)
参数名| 类型 |描述 参数名| 类型 |描述
---------------------------------------------------------|-----------------------------------------|--------------------------------------------------------- ---------------------------------------------------------|-----------------------------------------|---------------------------------------------------------
...@@ -62,7 +49,19 @@ onWorkStop(work: WorkInfo): void | 延迟调度任务结束回调 ...@@ -62,7 +49,19 @@ onWorkStop(work: WorkInfo): void | 延迟调度任务结束回调
### 开发步骤 ### 开发步骤
1、开发对应的ExtensionAbility,用于回调执行具体的延迟任务。关于ExtensionAbility的介绍,参考[ExtensionAbility机制](../ability/stage-brief.md#extensionability机制) 1、导入模块。
注册相关接口包导入:
```js
import workScheduler from '@ohos.resourceschedule.workScheduler';
```
回调相关接口包导入:
```js
import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility';
```
2、开发对应的ExtensionAbility,用于回调执行具体的延迟任务。关于ExtensionAbility的介绍,参考[ExtensionAbility机制](../ability/stage-brief.md#extensionability机制)
```ts ```ts
import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility'; import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility';
...@@ -78,7 +77,7 @@ export default class MyExtension extends WorkSchedulerExtensionAbility { ...@@ -78,7 +77,7 @@ export default class MyExtension extends WorkSchedulerExtensionAbility {
``` ```
2、注册延迟任务 3、注册延迟任务
```ts ```ts
import workScheduler from '@ohos.resourceschedule.workScheduler'; import workScheduler from '@ohos.resourceschedule.workScheduler';
...@@ -106,7 +105,7 @@ try{ ...@@ -106,7 +105,7 @@ try{
``` ```
3、取消延迟任务 4、取消延迟任务
```ts ```ts
import workScheduler from '@ohos.resourceschedule.workScheduler'; import workScheduler from '@ohos.resourceschedule.workScheduler';
...@@ -134,7 +133,7 @@ try{ ...@@ -134,7 +133,7 @@ try{
``` ```
4、获取指定延迟任务 5、获取指定延迟任务
```ts ```ts
try{ try{
...@@ -153,7 +152,7 @@ try{ ...@@ -153,7 +152,7 @@ try{
``` ```
5、获取所有延迟任务 6、获取所有延迟任务
```ts ```ts
try{ try{
...@@ -169,7 +168,7 @@ try{ ...@@ -169,7 +168,7 @@ try{
} }
``` ```
6、停止并清除任务 7、停止并清除任务
```ts ```ts
try{ try{
...@@ -180,7 +179,7 @@ try{ ...@@ -180,7 +179,7 @@ try{
} }
``` ```
7、判断上次执行是否超时 8、判断上次执行是否超时
```ts ```ts
try{ try{
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册