【问题标题】:WorkManager WorkName table not being cleared after jobs complete作业完成后未清除 WorkManager WorkName 表
【发布时间】:2020-01-28 10:27:00
【问题描述】:

我通过调用WorkManager.enqueueUniqueWork(String, ExistingWorkPolicy, OneTimeWorkRequest) 使用WorkManager,我检查了磁盘androix.work.workdb 上的数据库,并注意到在WorkName 表中我开始的每个作业都有一个条目。工作完成后它们不会被移除。这是正常的吗?他们会自动清除吗?何时、由谁? (系统还是 WorkManager?)

【问题讨论】:

    标签: android android-workmanager


    【解决方案1】:

    这是正常的。 WorkManager 将已完成的作业保存在其数据库中,以便您可以继续通过getWorkInfosForUniqueWorkLiveData() 或其他方法查询其WorkInfo,以返回统计信息(keepResultsForAtLeast() documentation 指出的事实)。如果不是这种情况,您将永远无法发现您的工作已经成功、失败或被取消。

    根据pruneWork() documentation

    您通常不需要调用此方法 - WorkManager 会在一段时间后自动修剪其工作

    根据the source code,“正常的一段时间”目前设置为 7 天。

    【讨论】:

      猜你喜欢
      • 2016-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-03
      • 2019-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多