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
。