worker manger doWork()方法无法执行,多次调用onStartWork()

Worker manger doWork() method can't be executed, but onStartWork() is called multiple times

我正在尝试在 1 分钟后应用程序启动时安排工作我需要做一些工作,应用程序是否仍在前台并不重要,但我需要这样做,但 我不不知道为什么我的 doWork 方法不是 运行,而是多次调用 onStart 方法

private void sacduleThePaddingNotifaction() {
    OneTimeWorkRequest postNotationWithDelay =
            new OneTimeWorkRequest.Builder(PostNotificationWork.class)
                    .setInitialDelay(1,TimeUnit.MINUTES)
                    .build();
    WorkManager.getInstance().enqueue(postNotationWithDelay);


}

我的工人class

public class PostNotificationWork extends Worker {
    @Override
    public void onStartWork(@NonNull WorkFinishedCallback callback) {
        Log.d("PostNotificationWork: ","onStartWork");//this called many times, some time 4 time 
    }

    @NonNull
    @Override
    public Result doWork() {

        Log.d("PostNotificationWork: ","Posting notification");
        return Result.SUCCESS;
    }
}

我正在使用 def work_version = "1.0.0-alpha07"

  • 尝试更新到这个版本 def work_version = "1.0.0-alpha06" implementation "android.arch.work:work-runtime:$work_version"
  • 移除 @Override public void onStartWork(@NonNull WorkFinishedCallback callback) { Log.d("PostNotificationWork: ","onStartWork");//this called many times, some time 4 time }
  • 终于再试一次

请不要覆盖 onStartWork()。即使你这样做,你也需要打电话给 super.onStartWork()。我们仍在研究 NonBlockingWorker API 的人体工程学。