HarmonyOS Next开发学习手册——Background Tasks Kit(后台任务开发服务)延迟任务

概述

功能介绍

应用退至后台后,需要执行实时性要求不高的任务,例如有网络时不定期主动获取邮件等,可以使用延迟任务。当应用满足设定条件(包括网络类型、充电类型、存储状态、电池状态、定时状态等)时,将任务添加到执行队列,系统会根据内存、功耗、设备温度、用户使用习惯等统一调度拉起应用。

运行原理

图1 延迟任务实现原理

应用调用延迟任务接口添加、删除、查询延迟任务,延迟任务管理模块会根据任务设置的条件(通过WorkInfo参数设置,包括网络类型、充电类型、存储状态等)和系统状态(包括内存、功耗、设备温度、用户使用习惯等)统一决策调度时机。

当满足调度条件或调度结束时,系统会回调应用 WorkSchedulerExtensionAbility 中 onWorkStart() 或 onWorkStop() 的方法,同时会为应用单独创建一个Extension扩展进程用以承载 WorkSchedulerExtensionAbility ,并给 WorkSchedulerExtensionAbility 一定的活动周期,开发者可以在对应回调方法中实现自己的任务逻辑。

约束与限制

  • 数量限制:一个应用同一时刻最多申请10个延迟任务。

  • 执行频率限制:系统会根据应用的活跃分组,对延迟任务做分级管控,限制延迟任务调度的执行频率。

表1 应用活跃程度分组

应用活跃分组 延迟任务执行频率
活跃分组 最小间隔2小时
经常使用分组 最小间隔4小时
常用使用 最小间隔24小时
极少使用分组 最小间隔48小时
受限使用分组 禁止
从未使用分组 禁止
  • 超时:WorkSchedulerExtensionAbility单次回调最长运行2分钟。如果超时不取消,系统会终止对应的Extension进程。

  • 调度延迟:系统会根据内存、功耗、设备温度、用户使用习惯等统一调度,如当系统内存资源不足或温度达到一定挡位时,系统将延迟调度该任务。

  • WorkSchedulerExtensionAbility接口调用限制:为实现对WorkSchedulerExtensionAbility能力的管控,在WorkSchedulerExtensionAbility中限制以下接口的调用:

  • @ohos.resourceschedule.backgroundTaskManager (后台任务管理)

    • @ohos.backgroundTaskManager (后台任务管理)
    • @ohos.multimedia.camera (相机管理)
    • @ohos.multimedia.audio (音频管理)
    • @ohos.multimedia.media (媒体服务)

接口说明

表2 延迟任务主要接口

以下是延迟任务开发使用的相关接口,更多接口及使用方式请见 延迟任务调度 文档。

接口名 接口描述
startWork(work: WorkInfo): void; 申请延迟任务
stopWork(work: WorkInfo, needCancel?: boolean): void; 取消延迟任务
getWorkStatus(workId: number, callback: AsyncCallback): void; 获取延迟任务状态(Callback形式)
getWorkStatus(workId: number): Promis
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值