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

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

现在我在WorkManager上有一些使用此约束的作业。

wifiConstraint = Constraints.Builder()
                .setRequiredNetworkType(NetworkType.UNMETERED)
                .build()

work_version = "2.2.0"
implementation "androidx.work:work-runtime-ktx:$project.work_version"

[客户的设备似乎已连接到WiFi网络,但是6个小时后未派遣Job(将其设置为repeatInterval: 30, TimeUnit.MINUTES)。

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

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

谢谢。

android android-workmanager
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.