2016-11-22 53 views
-1

我以下是Koush創建的流行Ion庫的一個示例:Download a File with a progress bar,我從one of his samples可以看到可以使用downloading.cancel()發送取消。Koush Ion onCompleted回調 - 句柄CancellationException

注:downloading被宣佈爲Future<File>

當調用cancel()方法時,會拋出CancellationException。我想特意處理這個異常,而不是一般地捕捉它。

我首先想到的是包裝一個try/catch塊,並使用類似:

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

但是如果你看his example,你會看到onCompleted回調使用2個輸入:Exception eFile result

樣品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 
}