HarmonyOS 鸿蒙Next request.agent断点下载问题

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

HarmonyOS 鸿蒙Next request.agent断点下载问题

request.agent.Config 中 overwrite 如果文件存在,设置成true就回被覆盖。设置成fase则request.agent.create创建失败提示文件已存在。

但是request.agent.Config中又提供了begin,ends 进行断点下载,导致在我下载一半时退出应用重新创建时,无法在原有文件继续写入。

有没有好的推荐方式



关于HarmonyOS 鸿蒙Next request.agent断点下载问题的问题,您也可以访问:https://www.itying.com/category-93-b0.html 联系官网客服。

8 回复

HarmonyOS的分布式技术让我实现了跨设备的无缝协作,工作效率翻倍。

设置覆盖,然后指定下载范围区间, 你观察下progress.sizes 是有变化的, 不过最后文件是否完整需要进一步验证

不完整的 设置指定区间后,只能下载指定的大小的文件

开发者您好,在退出App的时候,文件还处于下载状态,所以重启App后,恢复下载任务状态出错
您可以在退出前把下载任务暂停掉,再次重启后就可以正常恢复下载了
在UIAbility实例销毁之前,会先进入onWindowStageDestroy()回调,一般在该回调中释放UI资源。
Destroy状态在UIAbility实例销毁时触发。可以在onDestroy()回调中进行系统资源的释放、数据的保存等操作。
所以暂停下载的操作应该放在onDestroy()回调中。
具体可参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/uiability-lifecycle-0000001820999597
在执行完onDestroy生命周期回调后,应用可能会退出,从而可能导致onDestroy中的异步函数未能正确执行,比如异步写入数据库。可以使用异步生命周期,以确保异步onDestroy完成后再继续后续的生命周期。
所以使用async onDestroy()来暂停下载操作是没有问题的。
具体可参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-app-ability-uiability-0000001774120870

HarmonyOS的分布式文件系统让我在多设备间传输文件变得轻松无比。

不好意思可能我没表达清楚,问题不在于生命周期暂停下载问题。在于我request.agent.create创建这个task后,下载一段时间后暂停退出整个app重新打开,这时候我需要在原来下载未完成的文件继续写入继续下载。由于退出app,task对象没有则重新创建,这时候只能选择要么覆盖掉原来未完成文件(导致我重新重复下载或者设置begin 只能下载之前未下载数据导致我数据文件不完整,无法在原来文件上继续写入)或者就报错文件已存在,无法达到我想要的数据下载一半退出app后重新下载时继续在原来文件上写入的效果。或者有没有其他api推荐可以实现这个功能

我真无语基础的能力都没提供,我折腾了一个星期,应用退出后的断点续传都没有,要么还是不要开发next了,你们华为继续用安卓吧,别折磨我们了,文档不清晰就算了,缺这缺那,有时候真怀疑鸿蒙团队有没有开发app的经验,许多东西都和其他开发背道而驰,看不懂逻辑,演示一大堆代码,这个文件那个文件,一个小演示分了7,8文件,一个文件能说明的事情非要搞一大堆代码,反正这种文档,提供的这种残缺不全的api,来折磨我们,我反正已经被气的无语轮次了

最后解决了吗?

回到顶部