Android - Recupero dati XML da web (Usando AsyncTask) e Progressbar problema correlato

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

  •  02-10-2019
  •  | 
  •  

Domanda

Io sono il recupero di dati XML dal Web usando HTTP GET / POST. In questo momento ho fatto in modo semplice (cioè senza threaed).

Secondo il collegamento sotto, ho cercato di attuarlo con finestra Barra di avanzamento con il filetto http://www.ceveni.com/ 2009/09 / campione-progress-bar-dialogo-in-android.html

Ma come faccio a venire a conoscere il tempo finale di recupero XML dal web. (Vale a dire quello che dovrebbe essere il tempo di sonno e anche quando per chiudere la finestra di avanzamento barra di dialogo )

vorrei chiarire meglio il mio problema => In attività, quando l'utente fa clic su "recuperare i dati" pulsante, la "barra di avanzamento" finestra di dialogo dovrebbe essere comparso e dovrebbe essere scomparire solo quando il recupero è completato con successo.

Credo che questo può essere fatto con " AsyncTask ", ma non so come utilizzare tale concetto per questo problema.

Allora, come posso fare?

È stato utile?

Soluzione

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

    }

}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top