HarmonyOS 鸿蒙Next app后台长驻任务

发布于 1周前 作者 yibo5220 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next app后台长驻任务

我们有一个核心功能是app拨号上网后,需要每隔一定的时间向服务器发一次心跳,如果超时时间内,无法心跳,将会无法上网。 当前api提供的后台任务,在app进入后台后,隔一段时间任务就挂了。

2 回复
长时任务支持的场景如下文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/continuous-task-V5#%E4%BD%BF%E7%94%A8%E5%9C%BA%E6%99%AF

使用了网络管理服务的应用,才能通过申请DATA_TRANSFER长时任务实现后台上传下载,不被挂起。如果您使用的是httprequest做心跳的话,只能执行一次,数据传输结束就应该被挂起了。您试一下socket长连接,看看是否可以。

问一下,是什么业务场景需要进入后台后,还要能联网。不可以进入前台后,再次做拨号上网吗?

您好,我建议你们用定位的长时任务选项来做。第一个WiFi肯定有区域限制,正好可以要求用户开启定位权限,这样可以确认再服务范围以内。然后在定位返回的地方做心跳。

长时任务,调用socket接口创建了之后,对象在作用域里不被释放即可

我试了一下,不行。这个监测网络行为,是我进行长时任务时,只能发一次http请求吗?

您好,长时任务中数据传输时可以http请求多次,但是每次间隔时间要短,您可以参考下载多个文件的场景

针对HarmonyOS 鸿蒙Next app后台长驻任务的问题,作为IT专家,以下是一些专业解答:

在HarmonyOS中,应用退至后台后,若需要长时间运行用户可感知的任务(如播放音乐、导航等),可以申请长时任务。长时任务需经过系统校验,确保应用执行的任务与申请类型一致。同时,系统会通过通知栏消息与长时任务关联,用户删除通知时,任务会自动停止。

申请长时任务时,需注意以下几点:

  • 遵守申请限制,如Stage模型中长时任务仅支持UIAbility申请,FA模型中仅支持ServiceAbility申请。
  • 一个UIAbility(或ServiceAbility)同一时刻仅支持申请一个长时任务。
  • 若应用无需在后台运行,应及时主动取消长时任务,否则系统可能强行取消。

此外,系统会对未执行申请任务类型、执行非申请任务类型或后台负载过高的应用进行管控。

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

回到顶部