Android - получение данных XML из Интернета (с использованием Asynctask) и проблемы, связанной с ProgressBar
-
02-10-2019 - |
Вопрос
Я выбираю данные XML из сети, используя HTTP GET / POST. Прямо сейчас я сделал это простым способом (т. Е. Без щедряемого).
Согласно ссылке ниже, я пытался реализовать его с диалоговом окна прогресса с нитьюhttp://www.ceveni.com/2009/09/sample-progress-bar-dialog-in-android.html.
Но как мне узнать о времени окончания приема XML из Интернета. (Т.е. Какое должно быть время сна, а также, когда увольнение диалогового окна прогресса)
Позвольте мне очистить больше о моей проблеме => В деятельности, когда пользователь нажимает кнопку «Fetch Data», следует появиться диалоговое окно «Строка выполнения», и его следует исчезнуть, и его следует исчезнуть только тогда, когда выплата завершена успешно.
Я думаю, что это можно сделать с "Асинктюз«Но не знаю, как использовать эту концепцию для этой проблемы.
Так как мне это сделать?
Решение
public void onClick() {
new FetchTask(context).execute(null);
}
public class FetchTask extends AsyncTask<Object, Object, Object > {
private ProgressDialog dlg;
private Context ctx;
public FetchTask(Context context) {
ctx = context;
}
@Override
protected void onPreExecute() {
dlg = new ProgressDialog(ctx);
dlg.setMessage("Loading....");
super.onPreExecute();
}
@Override
protected void onPostExecute(Object result) {
dlg.dismiss();
if ( result instanceof Exception ) {
// show error message
} else {
// display data
}
super.onPostExecute(result);
}
@Override
protected Object doInBackground(Object... params) {
try {
// String rawData = doPost("yourUrl");
// XMLTree data = yourParser.parse(rawData);
// return data;
} catch ( Exception e ) {
return e;
}
}
}