我正在尝试使用codeLab文档学习WorkManager for Android。当我尝试测试beginUniqueWork(Ensure Unique Work)的功能时我崩溃了
我只需多次选择图像即可实现beginUniqueWork和测试应用程序。
我在ViewModel类中应用Blur()编写的代码是:
void applyBlur(int blurLevel) {
WorkContinuation continuation = mWorkManager
.beginUniqueWork(IMAGE_MANIPULATION_WORK_NAME,
ExistingWorkPolicy.REPLACE,
OneTimeWorkRequest.from(CleanupWorker.class));
// Add WorkRequests to blur the image the number of times requested
for (int i = 0; i < blurLevel; i++) {
OneTimeWorkRequest.Builder blurBuilder =
new OneTimeWorkRequest.Builder(BlurWorker.class);
// Input the Uri if this is the first blur operation
// After the first blur operation the input will be the output of previous
// blur operations.
if ( i == 0 ) {
blurBuilder.setInputData(createInputDataForUri());
}
continuation = continuation.then(blurBuilder.build());
}
// Add WorkRequest to save the image to the filesystem
OneTimeWorkRequest save =
new OneTimeWorkRequest.Builder(SaveImageToFileWorker.class)
.build();
continuation = continuation.then(save);
continuation.enqueue();
}
这是https://issuetracker.google.com/79550068。它现在已修复,修复程序是在WorkManager的alpha02中的available,现在已经出来了。