2017-09-04 68 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 
} 

希望它可以帮助