我有一个场景,我的应用程序尝试连接到服务器,同时显示ProgressDialog,以便用户知道它的联系服务器。但是,如果连接失败或由于某种原因拒绝,那么我想显示另一个对话框,说服务器拒绝连接。
我正在为此做的是,显示ProgressDialog然后尝试连接服务器,如果它抛出异常,那么我会显示错误消息的AlertDialog。但它不起作用,当我在ProgressDialog之后立即调用AlertDialog时,代码抛出异常。我也解雇了ProgressDialog然后启动AlertDialog但是没有工作。
我是否需要更改我的方法或我的代码中有什么问题?这就是我在代码中所做的事情
ProgressDialog pg = ProgressDialog.show(this, null, "Contacting server. Please wait...", false);
ConnectionThread ct = new ConnectionThread(web);
ct.setProgressDialog(pg);
ct.setErrorDialog(dialog);
ct.start();
这是ConnectionThread类,通过webAccess类从中尝试连接服务器
public class ConnectionThread extends Thread {
private WebAccess _webAccess;
private ProgressDialog _progressDialog;
private AlertDialog _alertDialog;
public ConnectionThread(WebAccess webAccess) {
_webAccess = webAccess;
}
public void setProgressDialog(ProgressDialog dialog) {
_progressDialog = dialog;
}
public void setErrorDialog(AlertDialog dialog) {
_alertDialog = dialog;
}
@Override
public void run() {
try {
_webAccess.invoke();
_progressDialog.dismiss();
} catch (Exception ex) {
_progressDialog.cancel();
_alertDialog.show();
}
}
}