Мне нужно проанализировать XML-файл, который занимает около 3 секунд, и сразу же использовать данные, которые анализируются из XML-файла после его завершения. Однако, поскольку это занимает около 3 секунд, я не хочу, чтобы экран сидел и ждал в течение 3 секунд, ничего не показывая. Я хотел бы, чтобы он отображал ProgressDialog. Я пробовал все в этих темах, и хотя большинство из них делают 2/3, ни один из них не делает все 3.
В основном у меня есть кнопка, при нажатии которой я хочу проанализировать XML-файл, а затем использовать данные, проанализированные из файла:
void onButtonClicked() {
ProgressDialog pd = new ProgressDialog(this);
pd.setMessage("Parsing...");
pd.show();
String[] ret;
return = parseXmlFile();
pd.dismiss();
if (ret[0] == "steve") {
sayHiToSteve();
}
}
Если я использую asyncTask, он продолжит выполнение и проверит ret [0], прежде чем задача будет завершена, и просто будет нулевым.
если я делаю AsyncTask.get (), он приостанавливает выполнение, но не отображает диалог прогресса, так что это тоже не хорошо.
Я также смотрел на создание отдельного потока, но у меня была та же проблема. Я не могу использовать таймер, потому что он составляет около 3 секунд (но может быть до 4 или 5 секунд, если соединение медленное), поэтому я не могу приблизиться.
Любая помощь очень ценится.
Заранее спасибо.