HarmonyOS 鸿蒙Next Background Task Kit长时任务可以指定后台长时任务运行的线程吗?

发布于 1周前 作者 gougou168 来自 鸿蒙OS

HarmonyOS 鸿蒙Next Background Task Kit长时任务可以指定后台长时任务运行的线程吗?

现状:目前通过Demo测试发现Background Task Kit只能够在UI线程之中运行,当尝试在taskpool线程之中通过

backgroundTaskManager.startBackgroundRunning启动后台长时任务时,无法启动。

问题:如题,可以在非UI线程之中运行Background Task Kit的长时任务吗?

我的真实需求是,希望在App切换到后台之后,能够在非UI线程之中,继续下载任务。

3 回复
长时任务包含数据传输、音视频播放、录制、定位导航、蓝牙相关、多设备互联、WLAN相关、音视频通话和计算任务。
参数名 描述 配置项 场景
DATA_TRANSFER 数据传输 dataTransfer 非托管形式的上传、下载,如在浏览器后台上传或下载数据。

关于DATA_TRANSFE(数据传输)说明:

  • 在数据传输时,若应用使用上传下载代理接口托管给系统,即使申请DATA_TRANSFER的后台任务,应用退后台时还是会被挂起。

  • 在数据传输时,应用需要更新进度。如果进度长时间(超过10分钟)不更新,数据传输的长时任务会被取消。

长时任务开发指导(TaskPool): https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/long-time-task-guide-V5#%E4%BD%BF%E7%94%A8taskpool%E8%BF%9B%E8%A1%8C%E4%BC%A0%E6%84%9F%E5%99%A8%E6%95%B0%E6%8D%AE%E7%9B%91%E5%90%AC

鸿蒙最新的系统版本可以了,不过满足下面的要求:

  1. backgroundTaskManager.startBackgroundRunning需要在UI线程之中运行;
  2. 在startBackgroundRunning执行的Promise.then之中启动LongTask。

HarmonyOS 鸿蒙Next Background Task Kit长时任务无法直接指定后台长时任务运行的线程

Background Task Kit是HarmonyOS提供的后台任务开发框架,支持多种类型的后台任务以满足不同场景的开发需求。其中,长时任务(ContinuousTask)允许应用在后台长时间运行,例如音乐播放和导航服务等。然而,关于长时任务运行的线程,Background Task Kit并未提供直接指定的功能。

在HarmonyOS中,后台任务的执行和管理是由系统自动进行的,开发者无需也无法直接干预任务的线程分配。系统会根据应用的需求和系统资源的情况,自动为后台任务分配合适的线程和执行环境。

如果开发者有特定的线程需求,通常需要在应用的前台部分进行线程管理和调度,而不是在后台任务中。对于后台任务,开发者应关注任务的申请、执行和取消等生命周期管理,以确保任务的正确执行和系统的稳定运行。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部