WorkManager可以将失败的作业保留多长时间?

问题描述 投票:0回答:2

我有一种情况,我想重试最近失败的作业,但是workmanager返回所有失败的作业。有办法删除旧工作吗?

android androidx android-workmanager
2个回答
0
投票

WorkManager在满足您的约束时重新启动失败的作品。

肯定有一种方法可以取消WorkManager中的作品。

要从WorkManager中取消作品,您只需要保存作品的UUID。

您将可以通过这段代码取消任何工作-

WorkManager.getInstance(context).cancelWorkById(UUID);

0
投票

对于OneTimeWorkRequest,失败是最终状态。它不会被重新执行。对于PeriodicWorkRequest,则有所不同。检查此博客:

this video涵盖了此。

返回您的问题:

是否有办法删除旧工作?

是!

使用WorkManager#pruneWork()删除处于最终状态(成功,失败和取消)的作业。正如您从文档中看到的那样,必须谨慎使用此方法。

请注意,这将删除所有处于失败状态的作业。删除旧作业的一种方法是,减少在构建工作请求时将WorkRequests保留在WorkManager的数据库中的时间,并设置自定义保留值。为此使用WorkManager#pruneWork()

© www.soinside.com 2019 - 2024. All rights reserved.