您的HttpUtil应在发生错误时返回错误消息,并在超时时返回超时信息,以便您在收到这些异常消息时隐藏对话框。
我看不到HttpUtil代码,到目前为止可能是一个解决方案:
private class GetMyTimeSheetTask extends AsyncTask {
private static final int REQUEST_TIMEOUT = 5000;
private ProgressDialog progress;
private Handler handler = new Handler(Looper.getMainLooper());
private Runnable hideDialogTask = new Runnable(){
@Override
public void run() {
progress.dismiss();
}
};
protected String doInBackground(String... params) {
MyTimeSheetFragment.this.getActivity().runOnUiThread(new Runnable(){
public void run() {
progress = new ProgressDialog(MyTimeSheetFragment.this.getContext());
progress.setTitle(getResources().getString(R.string.app_name));
progress.setMessage(getResources().getString(R.string.loading));
progress.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progress.setCancelable(false);
progress.show();
handler.postDelayed(hideDialogTask, REQUEST_TIMEOUT);
}
} );
String result = HttpUtil.httpGet(
params[0], params[1],
params[2], params[3],
params[4]);
return result;
}
protected void onPostExecute(String param) {
progress.dismiss();
....
}
}