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

bugfix

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