我正在关注 Koush 创建的流行 Ion 库的示例:下载带有进度条的文件,我可以从他的一个示例中看到可以使用downloading.cancel()
.
注意:downloading
被声明为Future<File>
.
当该cancel()
方法被调用时,它会抛出一个CancellationException
. 我想专门处理这个异常,而不是一般地捕捉它。
我的第一个想法是包装一个 try / catch 块,并使用类似的东西:
try {
//...
} catch (CancellationException ce) {
//...
}
但是,如果您查看他的示例,您会看到 onCompleted 回调使用 2 个输入:Exception e
和File result
。
此处的示例(第 72 行)显示了这一点:
if (e != null) {
Toast.makeText(ProgressBarDownload.this, "Error downloading file", Toast.LENGTH_LONG).show()
return;
}
这似乎是 try / catch 块的替代方案,如果存在异常,则该块会概括错误。CancellationException
但是,如果被抓到,我的目标是返回不同的吐司消息。