当前位置: 首页 > news >正文

鸿蒙原生应用/元服务开发-延迟任务说明(一)

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

鸿蒙原生应用/元服务开发-延迟任务说明(一)-鸿蒙开发者社区


应用调用延迟任务接口添加、删除、查询延迟任务,延迟任务管理模块会根据任务设置的条件(通过WorkInfo参数设置,包括网络类型、充电类型、存储状态等)和系统状态(包括内存、功耗、设备温度、用户使用习惯等)统一决策调度时机。
当满足调度条件或调度结束时,系统会回调应用WorkSchedulerExtensionAbility中 onWorkStart() 或 onWorkStop() 的方法,同时会为应用单独创建一个Extension扩展进程用以承载WorkSchedulerExtensionAbility,并给WorkSchedulerExtensionAbility一定的活动周期,开发者可以在对应回调方法中实现自己的任务逻辑。
三、约束与限制
数量限制:一个应用同一时刻最多申请10个延迟任务。
执行频率限制:系统对延迟任务做分级管控,限制延迟任务调度的执行频率。通过能效资源接口申请了WORK_SCHEDULER资源的应用,会被放在能效资源豁免分组中。
表1 应用活跃程度分组
 

鸿蒙原生应用/元服务开发-延迟任务说明(一)-鸿蒙开发者社区


超时:WorkSchedulerExtensionAbility单次回调最长运行2分钟。如果超时不取消,系统会终止对应的Extension进程。对于系统特权应用,可以通过能效资源接口申请WORK_SCHEDULER资源,扩展单次回调运行时长,扩展后在充电状态下为20分钟,非充电状态下为10分钟。
调度延迟:系统会根据内存、功耗、设备温度、用户使用习惯等统一调度,如当系统内存资源不足或温度达到一定挡位时,系统将延迟调度该任务。
WorkSchedulerExtensionAbility接口调用限制:为实现对WorkSchedulerExtensionAbility能力的管控,在WorkSchedulerExtensionAbility中限制以下接口的调用:
@ohos.resourceschedule.backgroundTaskManager (后台任务管理)
@ohos.backgroundTaskManager (后台任务管理)
@ohos.multimedia.audio (音频管理)
@ohos.multimedia.media (媒体服务)
本文根据HarmonyOS官方开发文档学习整理

http://www.lryc.cn/news/283770.html

相关文章:

  • 正信晟锦:借钱一直都不还可以起诉吗
  • npm run dev 启动vue的时候指定端口
  • 深度学习|16.1 词表示、embedding
  • .NetRSA签名(调的JAVA的接口)
  • CSS||选择器
  • 几种常见的算法
  • 原生的cURL函数而不是 tp6框架的Http类,curl_init()、curl_setopt()和curl_exec()等cURL函数
  • Win10下在Qt项目中配置SQlite3环境
  • Sentinel 轨道数据及下载
  • MD5 加密
  • 在 Excel 中将列数据用单引号括起来并添加分隔符的解决方案
  • 技术硬实力,阿里巴巴为什么要开源Spring Cloud Alibaba?
  • 2024 前端高频面试题之 HTML/CSS 篇
  • 实现将信息作为txt,pdf,图片的形式保存到电脑~
  • 服务器变矿机,该如何应对?
  • 2018年认证杯SPSSPRO杯数学建模A题(第一阶段)海豚与沙丁鱼全过程文档及程序
  • 【Webpack】预处理器 - 常用loader介绍
  • lodash 的 _.groupBy 函数是怎么实现的?
  • (2024,ViM,双向 SSM 骨干,序列建模)利用双向状态空间模型进行高效视觉表示学习
  • docker容器和常用命令
  • 【征服redis9】快速征服lua脚本
  • vue3.2二次封装antd vue 中的Table组件,原有参数属性不变
  • GBASE南大通用分享,如何修改可信上下文
  • 冻结Prompt微调LM: T5 PET (a)
  • 119 BFS和DFS解二叉树的所有路径
  • SpringBoot缓存相关注解的使用
  • SpiderFlow爬虫平台漏洞利用分析(CVE-2024-0195)
  • 计算机网络-甘晴void学习笔记
  • vue中使用echarts实现省市地图绘制,根据数据在地图上显示柱状图信息,增加涟漪特效动画效果
  • Android aar包集成与报错