我正在通过调用WorkManager.enqueueUniqueWork(String, ExistingWorkPolicy, OneTimeWorkRequest)
使用WorkManager,我在磁盘androix.work.workdb
的数据库上进行了检查,并注意到WorkName
表中为我启动的每个作业都有一个条目。工作完成后,不会将其删除。这正常吗?它们会自动清除吗?什么时候和谁? (系统还是WorkManager?)
这很正常。 WorkManager将完成的作业保留在其数据库中,以便您可以继续通过WorkInfo
或其他将统计信息返回给您的方法来查询其getWorkInfosForUniqueWorkLiveData()
(getWorkInfosForUniqueWorkLiveData()
指出的事实)。如果不是这种情况,您将永远无法确定自己的工作成功,失败或被取消。
根据keepResultsForAtLeast()
documentation:
您通常不需要调用此方法-在经过一段合理的时间后,WorkManager会自动修剪其工作
根据keepResultsForAtLeast()
,当前的“合理的时间段”当前设置为7天。