2017-09-04 67 views
0

我正在嘗試使用下面的代碼進行文件下載。就下載而言,一切正常。我遇到的一個問題是無論何時出現下載失敗,進程對話框都不會顯示出來。我在這裏錯過了什麼?這是什麼原因?進度對話框異常後不顯示

任何幫助深表感謝

public void onButtonClick(View view) { 
    mDialog = new ProgressDialog(MainActivity.this); 
    mDialog.setMessage("Downloading File"); 
    mDialog.setCancelable(false); 
    mDialog.show();// Does not show during download exceptions- is it because the below download code fails abruptly? 
    new NTLMTestData().asyncNTLMTest("http://myurl/FileName.csv", this, getApplicationContext()); 
} 

// The below call backs get fired from async  
@Override 
public void onSuccess(String msg) { 
    mDialog.dismiss(); 
} 

@Override 
public void onFailure(Exception ex) { 
    mDialog.dismiss(); 
} 
+2

添加一些日誌來檢查,但可能的錯誤是快速,並呼籲onFailure處Android可以呈現進度對話框之前。 – jonathanrz

+0

爲什麼你需要mDialog.dismiss();失敗了?我認爲它只應該是成功的,但如果出現錯誤,用戶本身就會關閉對話框。 –

+0

@jonathanrz我檢查了puttng斷點,它命中mDialog.show();所以,可能這可能是一個錯誤,它與Android可以呈現進度對話框之前拋出的異常相關。 - 如你所說 – user264953

回答

1

試試這個方法,而不是

public void onButtonClick(View view) { 
try{ 
    mDialog = new ProgressDialog(MainActivity.this); 
    mDialog.setMessage("Downloading File"); 
    mDialog.setCancelable(false); 
    mDialog.show(); 
    new NTLMTestData().asyncNTLMTest("http://myurl/FileName.csv", this, 
    getApplicationContext()); 
} catch (Exception e){ 
    showError(); 
} 

} 

private void showError(){ 
    mDialog = new ProgressDialog(MainActivity.this); 
    mDialog.setTitle("Error") 
    mDialog.setMessage("An error has occurred during download"); 
    mDialog.setPositiveButton("Ok", new 
    DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int which) { 
      mDialog.dismiss(); 
     } 
    }) 
    mDialog.setCancelable(false); 
    mDialog.show(); 
} 

// The below call backs get fired from async  
@Override 
public void onSuccess(String msg) { 
    mDialog.dismiss(); 
} 

@Override 
public void onFailure(Exception ex) { 
    //Leave blank 
} 

希望它可以幫助