1# @ohos.WorkSchedulerExtensionAbility (延迟任务调度回调) 2 3本模块提供延迟任务回调能力。开发者可重写模块接口,在延迟任务触发时,系统可通过本模块接口回调应用,在回调里处理任务逻辑。 4 5> **说明:** 6> 7> - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8> 9> - 本模块接口仅可在Stage模型下使用。 10 11## 导入模块 12 13```ts 14import { WorkSchedulerExtensionAbility } from '@kit.BackgroundTasksKit'; 15``` 16 17## WorkSchedulerExtensionContext<sup>10+</sup> 18 19type WorkSchedulerExtensionContext = _WorkSchedulerExtensionContext 20 21**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler 22 23| 类型 | 说明 | 24| -------- | -------- | 25| [_WorkSchedulerExtensionContext](js-apis-inner-application-WorkSchedulerExtensionContext.md)| WorkSchedulerExtension的上下文环境。 | 26 27## WorkSchedulerExtensionAbility 28 29### 属性 30 31**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler 32 33| 名称 | 类型 | 只读 | 可选 | 说明 | 34| -------- | -------- | -------- | -------- | -------- | 35| context<sup>10+</sup> | [WorkSchedulerExtensionContext](js-apis-inner-application-WorkSchedulerExtensionContext.md) | 否 | 否 | WorkSchedulerExtension的上下文环境,继承自ExtensionContext。 | 36 37### onWorkStart 38 39onWorkStart(work: workScheduler.WorkInfo): void 40 41开始延迟任务调度回调。 42 43**系统能力:** SystemCapability.ResourceSchedule.WorkScheduler 44 45**参数**: 46 47| 参数名 | 类型 | 必填 | 说明 | 48| ---- | ---------------------------------------- | ---- | -------------- | 49| work | [workScheduler.WorkInfo](js-apis-resourceschedule-workScheduler.md#workinfo) | 是 | 要添加到执行队列的任务。 | 50 51**示例:** 52 53 ```ts 54 import { workScheduler } from '@kit.BackgroundTasksKit'; 55 import { WorkSchedulerExtensionAbility } from '@kit.BackgroundTasksKit'; 56 57 export default class MyWorkSchedulerExtensionAbility extends WorkSchedulerExtensionAbility { 58 onWorkStart(workInfo: workScheduler.WorkInfo) { 59 console.info(`MyWorkSchedulerExtensionAbility onWorkStart, workId: ${workInfo.workId}, 60 bundleName: ${workInfo.bundleName}, abilityName: ${workInfo.abilityName}.`); 61 } 62 } 63 ``` 64 65### onWorkStop 66 67onWorkStop(work: workScheduler.WorkInfo): void 68 69结束延迟任务调度回调。当延迟任务2分钟超时或应用调用[stopWork](js-apis-resourceschedule-workScheduler.md#workschedulerstopwork)接口取消任务时,触发该回调。 70 71**系统能力:** SystemCapability.ResourceSchedule.WorkScheduler 72 73**参数**: 74 75| 参数名 | 类型 | 必填 | 说明 | 76| ---- | ---------------------------------------- | ---- | -------------- | 77| work | [workScheduler.WorkInfo](js-apis-resourceschedule-workScheduler.md#workinfo) | 是 | 执行队列中要结束回调的任务。 | 78 79 80**示例:** 81 82 ```ts 83 import { workScheduler } from '@kit.BackgroundTasksKit'; 84 import { WorkSchedulerExtensionAbility } from '@kit.BackgroundTasksKit'; 85 86 export default class MyWorkSchedulerExtensionAbility extends WorkSchedulerExtensionAbility { 87 onWorkStop(workInfo: workScheduler.WorkInfo) { 88 console.info(`MyWorkSchedulerExtensionAbility onWorkStop, workId: ${workInfo.workId}, 89 bundleName: ${workInfo.bundleName}, abilityName: ${workInfo.abilityName}.`); 90 } 91 } 92 ```