Android - Fetching von XML-Daten aus Web (mit AsyncTask) und Progressbar verwandtes Problem
-
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?
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;
}
}
}