【发布时间】:2014-07-23 05:46:13
【问题描述】:
我使用 AsyncTask 来连接互联网。 进度对话框可以在 onPreExecute() 处显示,如果是,我检查该手机是否在线,如果是,则意味着它将执行 http 连接代码并在 onPostExecute() 处关闭进度对话框,并且它的工作正常。
但如果网络连接在 Request 时可用并且连接在获取 Response 之前关闭意味着始终显示进度对话框,我会遇到问题。
现在我想解决这个问题,如果在获得响应之前互连断开意味着它提醒我没有互联网连接并关闭进度对话框(可能将加载时间限制设置为 30 秒)。
下面是我的代码。
有人可以帮忙吗?
public class SubjectTask extends AsyncTask<Void, Void, Integer> {
@Override
protected void onPreExecute() {
progressDialog = ProgressDialog.show(Login.this, "Loading",
"Please wait...");
//checkConnection();
}
@Override
protected Integer doInBackground(Void... arg0) {
if (isOnline()) { //using ConnectivityManager And Network Info
try {
//Http Request connections
} catch (Exception e) {
e.printStackTrace();
}
return 1;
} else {
alert("Check your internet connection");
return 0;
}
}
protected void onPostExecute(Integer result) {
super.onPostExecute(result);
if (progressDialog.isShowing()) {
progressDialog.dismiss();
}
}
}
【问题讨论】:
标签: java android-asynctask progressdialog android-internet