gpt4 book ai didi

java - 用于长网络连接的 WorkManager?

转载 作者:行者123 更新时间:2023-11-29 18:41:12 24 4
gpt4 key购买 nike

我想使用 WorkManager 从 Web 下载文件,但我对 JobScheduler 的限制感到难过 - 10 分钟才能工作。也许有其他方法或者您必须使用前台服务?

最佳答案

我还没有听说过对工作/工作本身施加任何 10 分钟的窗口,但是我确实在 Power management restrictions 中找到了对工作 10 分钟限制的引用。 :

If jobs restrictions are in force, the app is granted a window of ten minutes at the specified interval. At the end of the ten minutes, all jobs are postponed until the next window.

这并没有真正告诉我们如果作业仍在 10 分钟标记处执行会发生什么,但是,我建议如果您的工作花费的时间超过 10 分钟,您应该采用不同的结构。

第一件事是为每个需要下载的文件安排新的工作。您可能不应该尝试一次下载所有文件。如果您需要保证某些文件以特定顺序下载,请考虑构建一个 chain不同的下载任务。这种策略还有两个很大的好处:如果一个文件下载失败,您可以重新安排该文件的下载,而不是到那时您可能已经下载的所有 X 文件,并且 - 根据电源管理文档 - 所有文件都没有'尚未下载的内容将推迟到下一个 10 分钟窗口。

其次,如果任何给定文件的下载时间超过 10 分钟,或者考虑到您的文件大小,这很有可能发生,那么您应该查看 range requests。这样您就可以将文件的一部分保存到磁盘,并且每次您的工作达到 10 分钟限制时,您都可以重试或重新安排更多工作以在以后的窗口中继续下载。

最后,我会认真质疑您的业务逻辑是否需要应用程序在电池限制适用时执行如此多的工作。最好指定这种工作必须在充电时执行,或者至少在不处于打瞌睡模式(非空闲)时执行,以便完全避免这 10 分钟的窗口。

希望这个回答对您有所帮助!

关于java - 用于长网络连接的 WorkManager?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53029866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com