В моем проекте есть главная форма с AsynkTask
, на которой я подтягиваю 1 json. Загрузка остальных форм не происходит, пока не придут данные. Задача: сделать так, чтобы
AlertDialog
с кнопкой "Повторить". Есть недописанный фрагмент кода с неким флагом, который я обновлял после возникновения ошибки. Убрал лишнее, оставив только суть. Но проблема в том, что сам алерт не закрывался, и прогресс бар его перекрывал собой, когда я возобновлял загрузку. Например, специально выключаешь интернет, открываешь приложение, вызвалось окно. Затем его включаешь, нажимаешь повторить, приложение продолжает работу, получив информацию, а копия незакрытого диалога еще остается, и затем уже сама закрывается, и еще раз посылает сигнал о загрузке.
@Override
protected void onResume() {
new ParseTask().execute();
super.onResume();
}
private class ParseTask extends AsyncTask<Void, Void, String> {
Button buttonContinue = (Button) (findViewById(R.id.buttonContinue));
@Override
protected void onPreExecute() {
super.onPreExecute();
showProgress();
}
@Override
protected void onCancelled() {
super.onCancelled();
}
@Override
protected String doInBackground(Void... voids) {
try {
...
} catch (Exception e) {
e.printStackTrace();
}
return resultJson;
}
@Override
public void onPostExecute(final String strJson) {
super.onPostExecute(strJson);
ObjectClass objectClass;
...
....
try {
....
}
} catch (JSONException e) {
e.printStackTrace();
errorDetecer = true;
}
AlertDialog.Builder builder = new lertDialog.Builder(MainActivity.this);
if(errorDetecer) {
new ParseTask().onCancelled();
builder.setTitle("Ошибка загрузки данных");
builder.setCancelable(false);
builder.setMessage("Скорее всего, она связана с работой сервера или сети. Повторим операцию?");
builder.setNegativeButton("Повторить",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
alertDialog.dismiss();
onResume();
}
});
errorDetecer = false;
alertDialog = builder.create();
alertDialog.show();
} else {
}
buttonContinue.setVisibility(View.VISIBLE);
hideProgress();
}
}
Первый вопрос простой - стоит ли от сложности создания диалога на мой взгляд, присмотреться к более современным технологиям - насколько asynktask олдскулен?
И второй, кто сможет поделиться опытом отслеживания ошибок с применением AlertDialog
?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Работаю с java swingНа мониторе отображаются данные с переменной newDegree (благодаря Thread конвертируются разные данные каждые 5 секунд)
Пытаюсь развернуть сайт, написанный на Java с использованием фреймворка Vaadin на платном хостингеСделал вcё согласно туториала - скопировал
Задача такая, есть текст с кодом, нужно отправить его через POST на сервер, и виртуальная машина java должна его отработать и вернуть результат...