Android - получение данных XML из Интернета (с использованием Asynctask) и проблемы, связанной с ProgressBar

StackOverflow https://stackoverflow.com/questions/3715179

  •  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;
        }

    }

}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top