java - 未经检查地调用“continueWithTask....”作为原始类型的成员
问题描述
我在所有三种方法上都收到此警告,我尝试在 stackoverflow 中搜索解决方案,但无法弄清楚可用解决方案将如何应用于我的案例。即使代码按预期运行良好,但代码块以黄色突出显示,并且似乎不断要求注意。谢谢您的帮助!
final StorageReference storageReference = FirebaseStorage.getInstance().getReference()
.child(mStorageRef).child(mFileName);
final StorageTask storageTask = storageReference.putFile(intentDataUri);
storageTask.addOnProgressListener((OnProgressListener<UploadTask.TaskSnapshot>) taskSnapshot -> {
double p = 100.0 * taskSnapshot.getBytesTransferred() / taskSnapshot.getTotalByteCount();
progressDialog.setMessage((int) p + getString(R.string.percent_of) + taskSnapshot.getTotalByteCount() +getString(R.string.strUploading));
}).continueWithTask((Continuation) task -> {
if (!task.isSuccessful()) {
throw task.getException();
}
return storageReference.getDownloadUrl();
}).addOnCompleteListener((OnCompleteListener<Uri>) uriTask -> {
解决方案
终于解决了这个问题,我修改了下面的代码,它不再抛出那个警告,用 UploadTask 替换了 StorageTask 并且它工作了 -
final String messageID = databaseReference.child(getResources().getString(R.string.dbrefMessage)).child(mCurrentUserID)
.child(mMsgReceiverID).push().getKey();
final StorageReference storageReference = FirebaseStorage.getInstance().getReference()
.child(mStorageRef).child(mFileName);
final UploadTask uploadTask = storageReference.putFile(uri);
uploadTask.addOnProgressListener(taskSnapshot -> {
double p = 100.0 * taskSnapshot.getBytesTransferred() / taskSnapshot.getTotalByteCount();
progressDialog.setMessage((int) p + getString(R.string.percent_of) + taskSnapshot.getTotalByteCount() + getString(R.string.strUploading));
}).continueWithTask(task -> {
if(!task.isSuccessful()){
throw task.getException();
}
return storageReference.getDownloadUrl();
}).addOnCompleteListener(uriTask -> {
推荐阅读
- javascript - 如何将 Prop 从类组件传递到功能组件
- mysql - 添加自定义自动增量值
- c - cs50 pset1 cash.c 预期表达式
- python - 如何使用 Keras 实现 CNN-LSTM
- python - Python if 语句结果未打印
- r - dplyr mutate_at 并一起重命名
- python - 如何显示配置文件中的值
- python - GST_ELEMENT_FACTORY gstelementfactory.c:467:gst_element_factory_make:没有这样的元素工厂“voaacenc”
- c# - 如何在 .NET Framework Web 应用程序中为 Web Api 进行自定义模型绑定?
- cakephp-3.x - 片段缓存 cakephp 4