【问题标题】:doWork is not being called of WorkoutManagerdoWork 没有被 WorkoutManager 调用
【发布时间】:2021-05-19 11:56:10
【问题描述】:

我正在尝试将 gcmnetworkmanager 迁移到 workmanager。这是我使用的代码: 这段代码在mainActivity中调用

WorkRequest uploadWorkRequest =
              new OneTimeWorkRequest.Builder(SyncServiceV2.class)
                    .build();

        WorkManager
              .getInstance(context)
              .enqueue(uploadWorkRequest);

这是工人阶级:

class SyncServiceV2 extends Worker {
    public SyncServiceV2(@NonNull @NotNull Context context,
                         @NonNull @NotNull WorkerParameters workerParams) {
        super(context, workerParams);

    }

    @NonNull
    @NotNull
    @Override
    public Result doWork() {
        return syncBadgeData();
    }

但是 doWork 没有被调用。我的代码有什么问题。为什么代码没有被调用?

【问题讨论】:

  • 你有没有放一些日志并检查,或者尝试调试器
  • 是的,也没有日志。这就是为什么我对问题所在感到困惑

标签: android android-jetpack android-workmanager


【解决方案1】:

使用:adb shell dumpsys jobscheduler

然后您可以检查您的工作状态。可能还有一些约束条件仍未满足。

Required constraints: TIMING_DELAY CONNECTIVITY [0x90000000] 
Satisfied constraints: DEVICE_NOT_DOZING BACKGROUND_NOT_RESTRICTED WITHIN_QUOTA [0x3400000]  
Unsatisfied constraints: TIMING_DELAY CONNECTIVITY [0x90000000]

检查:https://developer.android.com/topic/libraries/architecture/workmanager/how-to/debugging

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    • 2018-11-25
    相关资源
    最近更新 更多