有没有办法知道WorkManager Job是否由于约束而没有执行?

时间:2019-10-18 11:04:20

标签: android android-workmanager

现在,insert into a (('id','name','add'),'college') select from b where id = 1,'abc' 上有一些使用此约束的工作。

WorkManager

客户设备似乎已连接到WiFi网络,但6小时后仍未派遣Job(将其设置为wifiConstraint = Constraints.Builder() .setRequiredNetworkType(NetworkType.UNMETERED) .build() work_version = "2.2.0" implementation "androidx.work:work-runtime-ktx:$project.work_version" )。

此WiFi网络是具有配置配置文件的企业网络。

是否有办法知道工作是否不符合既定约束,以及哪个约束不符合?

谢谢。

1 个答案:

答案 0 :(得分:0)

您无法直接在WorkManager中获得此信息,但是,假设此设备在Android 6.0+(API level23 +)上运行,则可以获得有关WorkManager使用的基础JobScheduler API的一些信息。

使用命令:

adb shell dumpsys jobscheduler

您应该可以使用此命令识别您的任务。

这将在以下类别中为您带来巨大的收益。

  • 设置
  • 已注册的XX个职位
  • 连接性
  • 警报
  • 空闲
  • 电池
  • AppIdle
  • 内容
  • 工作经历
  • 待处理队列

如果要在Android 7.1和更高版本上进行测试,则可以使用以下命令强制运行计划的作业。

adb shell cmd jobscheduler run -f PACKAGE_NAME JOB_ID