Koush が作成した人気のある Ion ライブラリの例に従っています。プログレス バーを含むファイルをダウンロードします。彼のサンプルの 1 つから、 を使用してキャンセルを送信できることがわかり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。