当在WorkManager中重复调用Result.success()时,会出现这个问题。解决方法是在执行任务的doWork()方法前检查一下任务是否已经完成,如果已经完成就可以直接返回Result.success()。以下是一个示例代码:
public class MyWorker extends Worker {
private boolean isComplete = false;
public MyWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
super(context, workerParams);
}
@NonNull
@Override
public Result doWork() {
if(isComplete){
return Result.success();
}
//执行任务的代码
isComplete = true;
return Result.success();
}
}