Android - Fetching von XML-Daten aus Web (mit AsyncTask) und Progressbar verwandtes Problem

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

  •  02-10-2019
  •  | 
  •  

Frage

Ich bin das Abrufen eines XML-Daten aus dem Web über HTTP GET / POST. Im Moment habe ich es auf einfache Art und Weise durchgeführt (das heißt ohne threaed).

Nach dem untenstehenden Link, habe ich versucht, es mit Gewinden mit Fortschrittsbalken Dialog zu implementieren http://www.ceveni.com/ 2009/09 / Probe-progress-Bar-Dialog-in-android.html

Aber wie komme ich über die Zielzeit wissen, von aus dem Web XML abgerufen werden. (Dh , was die Schlafzeit sein sollte, und wenn auch das Fortschrittsanzeige-Dialogfeld schließen )

Lassen Sie mich mehr über mein Problem klar => In der Aktivität, wenn der Benutzer, klicken Sie auf „Daten holen“ klicken, das „Fortschrittsbalken“ Dialogfeld erscheint werden soll, und es sollte nur verschwinden, wenn der Abruf abgeschlossen ist erfolgreich.

ich denke, das kann mit „ AsyncTask “, aber nicht wissen, wie man das Konzept verwenden, um dieses Problem durchgeführt werden.

So wie ich es tun?

War es hilfreich?

Lösung

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

    }

}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top