2016-11-22 5 views
-1

私はKoushが作成した一般的なイオンライブラリの例に従っています:Download a File with a progress bardownloading.cancel()を使用してキャンセルを送信できることをone of his samplesから見ることができます。Koush Ion onCompletedコールバック - ハンドルCancellationException

NB:downloadingFuture<File>と宣言されました。

cancel()メソッドが呼び出されると、CancellationExceptionがスローされます。私はこの例外を一般的にキャッチするのではなく、具体的に処理したいと思います。 Exception eFile result:あなたはhis exampleを見ればしかし、あなたはonCompletedコールバックが2つの入力を使用していることがわかります

try { 
    //... 
} catch (CancellationException ce) { 
    //... 
} 

私が最初に考えたのはtry/catchブロックをラップし、のようなものを使用することです。

サンプルhere (line 72)はこれを示しています

if (e != null) { 
    Toast.makeText(ProgressBarDownload.this, "Error downloading file", Toast.LENGTH_LONG).show() 
    return; 
} 

これは例外が存在する場合は、エラーが一般化されたtry/catchブロックに代わるように見えます。しかし、CancellationExceptionが見つかった場合、私は別のトーストメッセージを返すことを目指しています。

+0

カスタム例外を記述する必要があります。 – Radhey

答えて

1

個別に例外を処理するには、スローされた例外eのインスタンスで例外タイプを検索できます。

これは私のために機能するソリューションです:

if (e instanceof CancellationException) { 
    //CancellationException was found 
} 
関連する問題