后台任务开发服务-HarmonyOS 鸿蒙Next个人解读

后台任务开发服务-HarmonyOS 鸿蒙Next个人解读

官方指南

https://gitee.com/beauty-bag/docs/tree/master/zh-cn/application-dev/task-management

说明:此处链接为gitee上开发状态内容,包含最新的技术说明与变更,会存在还未发布的技术点。

个人解读

目的

应用在退至后台、锁屏、息屏等操作下,如果需要继续活动,可能会造成设备耗电快、用户界面卡顿等现象。为了降低设备耗电速度(功耗)、保障用户使用流畅度,系统会对退至后台的应用进行管控,包括进程挂起(冻结)和进程终止(Kill)。应用在被挂起后,则无法继续使用软件资源(如公共事件、定时器等)和硬件资源(CPU、网络、GPS、蓝牙等),即简单的理解为应用的业务被停止了,无法继续执行代码。但为了保证某些业务功能的正常使用,如播放音乐,下载等业务,系统提供了一套规范的机制,即后台任务,使满足条件的应用可继续在后台运行,不被冻结。

要素1:

应用退后台在没有保活(防冻结)的情况下,必会被冻结,那么具体多久时间会被冻结。具体在应用的那个生命周期执行完后被冻结。

要素2:

即使应用拥有保活措施,是否还会存在其他原因(即更高级别的管控措施)导致应用进程被终止

约束

对于在后台运行的进程,系统会给予一定的资源配额约束,包括进程在连续一段时间内内存的使用、CPU使用占比,以及24小时磁盘写的IO量,均有对应的配额上限。超过配额上限时,如果进程处于前台,系统会有对应的warning日志,如果进程处于后台,系统会终止该进程。

要素1

对于目的中的要素2,那么就可以证明,肯定存在更高级别的管控措施,即使应用使用了后台任务,在后台运行时如果内存占用高,或CPU超基线,或IO超基线等,则也会终止应用进程。

类型(当前不对长时任务,短时任务解读)

长时任务:

长时间运行在后台、用户可感知的任务,例如后台播放音乐、导航、设备连接等,使用长时任务避免应用进程被挂起。

要素点1

应用需存在长时间,持续性业务(即如果业务中途断开则任务会被终止,那么如果短时间停止是否可以维持,如切歌场景)

要素点2

用户可感知

短时任务:

要素点1

运行时间短

备注:

应用申请了规范内的后台任务,仅会提升应用进程被回收的优先级。当系统资源严重不足时,即使应用进程申请了规范内的后台任务,系统仍会终止部分进程,用以保障系统稳定性

总结:

  1. 应用退后台(主动切换、锁屏、息屏等方式)时,无保活措施情况下,会被冻结
  2. 系统提供约束犯规内的方式,使得应用可持续在后台运行,如后台任务
  3. 后台任务并不保证应用在后台运行不会被杀,存在更高级别的管控,可以终止应用进程

下期预告:短时任务使用方式(包含简易代码实现)


更多关于后台任务开发服务-HarmonyOS 鸿蒙Next个人解读的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于后台任务开发服务-HarmonyOS 鸿蒙Next个人解读的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS的后台任务开发服务主要基于分布式任务调度和后台任务管理两大核心功能。分布式任务调度允许应用在多个设备间协同工作,通过统一的调度机制实现任务的高效分配与执行。后台任务管理则确保应用在后台运行时能够合理利用系统资源,避免过度消耗电量或影响用户体验。

在HarmonyOS中,后台任务开发服务通过BackgroundTaskManagerDistributedTaskScheduler两个关键类来实现。BackgroundTaskManager用于管理应用的后台任务,支持定时任务、延迟任务和持续任务等类型,开发者可以通过该接口设置任务的执行条件和资源限制。DistributedTaskScheduler则负责跨设备任务的调度与执行,支持任务的分发、同步和状态监控,确保任务在分布式环境下的高效运行。

HarmonyOS的后台任务开发服务还提供了丰富的API,开发者可以通过这些API实现任务的创建、更新、取消和状态查询等操作。此外,系统还提供了任务优先级管理、资源限制和任务链等高级功能,帮助开发者更好地控制任务的行为。

在鸿蒙Next中,后台任务开发服务进一步优化了任务的调度算法和资源管理机制,提升了任务执行的效率和稳定性。同时,系统还引入了更加灵活的任务调度策略,支持根据设备的当前状态和网络条件动态调整任务的执行计划。

总体来说,HarmonyOS的后台任务开发服务为开发者提供了强大的工具和接口,帮助他们在分布式环境下实现高效、稳定的任务管理和调度。

回到顶部