我目前正在做一个项目,它有一些文件上传/下载操作,并使用Firebase存储作为后端存储service.For更好的UX它需要显示上传下载的状态,如成功上传,上传失败和上传progress.but问题是在管理多个文件上传/下载
List<UploadTask> uploadTasksList;但这并不能很好地管理operations.Is,还有其他方式可以正确地管理下载/上传。或者有没有一些我可以用来管理的库。请帮帮我!
发布于 2018-08-20 11:07:21
看起来Task类型的API公开了一些方便的方法,用于将其他Task的执行链接在一起:
continueWithTask(Continuation<TResult, Task<TContinuationResult>> continuation)...or甚至是其他一些任意的逻辑:
continueWith(Continuation<TResult, TContinuationResult> continuation)给定两个UploadTask,前者的用法可能如下所示:
final UploadTask task1 = storageReference1.putBytes(bytes1);
final UploadTask task2 = storageReference2.putBytes(bytes2);
task1.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<UploadTask.TaskSnapshot>>() {
@Override
public Task<UploadTask.TaskSnapshot> then(@NonNull Task<UploadTask.TaskSnapshot> task) {
return task2;
}
});...or,更简洁地使用lambda语法:
final UploadTask task1 = storageReference1.putBytes(bytes1);
final UploadTask task2 = storageReference2.putBytes(bytes2);
task1.continueWithTask(task -> task2);如果您沿着这条路走下去,也值得花时间阅读关于Continuation类型的docs --特别是关于错误处理。
希望这能有所帮助!
https://stackoverflow.com/questions/51913867
复制相似问题