从WorkManager的工作/工作信息获取上次更新时间



有什么方法可以完成或成功工作时间戳吗?

WorkManager.getInstance().getWorkInfosByTagLiveData(groupId)此代码给出WorkInfo.

我确定WorkManager有时间戳来管理Work,但是如何获取它?

我正在检查位于/data/data/com.example/databasesandroidx.work.workdb文件。从 WorkManager 2.2.0 开始,以下是WorkSpec表中存在的列:

  • ID (例如 dbe0dcd0-ab76-4c1e-a963-be2135f41c3c(
  • 状态(例如 2(
  • worker_class_name(例如.com.example.MyWorker(
  • input_merger_class_name(大部分为空,但也androidx.work.OverwritingInputMerger(
  • 输入
  • 输出
  • initial_delay(例如 300000(
  • interval_duration(例如 900000(
  • flex_duration(例如 900000(
  • run_attempt_count(例如 1(
  • backoff_policy(例如 0(
  • backoff_delay_duration(例如 30000(
  • period_start_time(例如1578901635581(
  • num_retention_duration(例如 0(
  • schedule_requested_at(例如1578901635601(
  • required_network_type(例如 1(
  • requires_charging(例如 0(
  • requires_device_idle(例如 0(
  • requires_battery_not_low(例如 1(
  • requires_storage_not_low(例如 0(
  • trigger_content_update_delay(例如 -1(
  • trigger_max_content_delay(例如 -1(
  • content_uri_triggers

可以推断,不存在一个字段,它将反映特定工作完成时的时间戳,因为根据我的理解WorkManager不需要该字段。

因此,您唯一的选择是在工作成功完成后,使用共享首选项或其他 SQLite 表手动保存时间戳。