Я использую AsyncTask для подключения к Интернету. Диалоговое окно хода выполнения может отображаться в onPreExecute(), и я проверяю, находится ли он в сети на этом мобильном устройстве, если да, это означает, что он выполнит код HTTP-соединения, а также закроет диалоговое окно хода выполнения в onPostExecute(), и его работа будет хорошей.
Но у меня проблема, если сетевое соединение доступно во время Запроса, а соединение закрыто до получения Ответа, что означает, что диалоговое окно «Ход выполнения» отображается всегда.
Теперь я хочу решить эту проблему, если межсоединение отключается до получения ответа, что означает, что он предупреждает меня об отсутствии подключения к Интернету и закрывает диалоговое окно прогресса (может установить ограничение времени загрузки на 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();
}
}
}