为什么要使用后台任务?开发过程中如何选择合适的后台任务?后台任务申请时存在哪些约束与限制?
针对开发者使用后台任务中的疑问,我们上线了概念更明确、逻辑结构更清晰的后台任务开发指南,包含具体的使用场景、详细的开发步骤,帮助开发者全面理解申请后台任务的必要性、后台任务类型和申请操作步骤等。
本期 HarmonyOS 开发者资料直通车带您快速了解内容干货~
一、初识后台任务
设备返回主界面、锁屏、应用切换等操作会使应用退至后台,应用退至后台后如果继续活动,可能会造成设备耗电快、用户界面卡顿等现象。为了降低设备耗电速度、保障用户使用流畅度,系统会对退至后台的应用进行管控,包括进程挂起(即系统不再为应用进程分配 CPU 资源,同时对应的公共事件等不再发给应用进程)和进程终止。
为了保障后台音乐播放、日历提醒等功能的正常使用,系统提供了规范内受约束的后台任务,扩展应用在后台运行时间,包括短时任务、长时任务、延迟任务、代理提醒。
参考文档链接
后台任务总体概述:https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/background-task-overview-0000001614944868-V3
二、选择后台任务
开发者可以根据如下的功能介绍,选择合适的后台任务,以满足应用退至后台后继续运行的需求。
○ 短时任务:适用于实时性要求高、耗时不长的任务,例如应用更新时退至后台后继续更新,保存更新时的数据和状态。
○ 长时任务:适用于长时间运行在后台、用户可感知的任务,例如后台播放音乐、导航、设备连接等,使用长时任务避免应用进程被挂起。
○ 延迟任务:适用于实时性要求不高、可延迟执行的任务。应用退至后台后被放入执行队列,系统会根据内存、功耗等统一调度,例如有网络时不定期主动获取邮件。
○ 代理提醒:代理提醒是指应用退后台或进程终止后,系统会代理应用做相应的提醒。适用于定时提醒类业务,当前支持的提醒类型包括倒计时、日历和闹钟三类。
图 1 后台任务类型选择
为保障选择到合适的任务,开发者可以根据图 1 流程图再次判断。
参考文档链接
后台任务总体概述:https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/background-task-overview-0000001614944868-V3
三、申请后台任务
选择合适的后台任务类型后,可以进行申请后台任务的操作啦~以短时任务为例,清晰地呈现申请后台任务时的操作步骤。
①了解相关机制及规格,实现更高效开发。
○ 申请时机:应用需要在前台或退至后台 5 秒内申请短时任务。
○ 数量限制:一个应用同一时刻最多支持申请 3 个。
○ 配额机制:一个应用有一定时间配额,单日配额 10 分钟,单次配额最大为 3 分钟,低电量时默认为 1 分钟,配额消耗完后不允许再申请短时任务。所以,任务完成后,应用需主动取消短时任务,否则会影响应用当日短时任务的剩余配额。
○ 配额计算:仅当应用在后台时,统计应用下的短时任务计时;同一个应用下的同一个时间段的短时任务,不重复计时。
②导入相关模块,申请短时任务并实现回调。
③查询短时任务的剩余时间,用以判断是否继续运行其他业务。
④任务完成后,及时取消短时任务。
更详细内容请参见:
参考文档链接
短时任务:https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/transient-task-0000001759591245-V3
长时任务:https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/continuous-task-0000001711672320-V3
延迟任务:https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/work-scheduler-0000001711831844-V3
代理提醒:https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/agent-powered-reminder-0000001663585481-V3
四、期待您的反馈
以上就是本期为大家准备的 HarmonyOS 后台任务管理开发指南上新内容,希望能够帮助开发者更高效地探索、体验、上手 HarmonyOS。
同时,我们十分重视开发者的意见,欢迎各位开发者在 HarmonyOS 应用开发官网积极反馈意见。
我们将持续提升文档体验、丰富和完善内容,感谢各位开发者的支持及信赖,您的满意是我们持续提升文档体验的目标和动力。