zeigen und entlassen Sie die Fortschrittsanzeige während der Ausführung von einem thread in android

Ich habe eine Methode in meiner activity herunterladen einer Reihe von Dateien. Dieser Download stattfindet, wenn ich starten Sie eine neue Aktivität. Ich habe threads verwendet, weil es vollständig heruntergeladen in der Erwägung, dass AsyncTask können manchmal nicht alle Dateien herunterladen, es kann zwischen geklebt bekommen.

Nun, dass ein schwarzer Bildschirm angezeigt wird, wenn der Download erfolgt. Ich möchte zeigen, dass es innerhalb von ein ProgressDialog, so dass Benutzer können das Gefühl, dass etwas wird immer heruntergeladen.

Habe ich einen ProgressDialog, aber seine nicht angezeigt. Kann mir jemand sagen, wo habe ich bloß falsch gemacht?

Unten ist mein code:

Innen onCreate() ich geschrieben habe:

downloadFiles();

private boolean downloadFiles() {
    showProgressDialog();
    for(int i = 0; i < filesList.size();i++) {
        Thread thread = new Thread(new Runnable() {    
            @Override
            public void run() {
                //downloading code
         });
         thread.start();
         thread.run();
    }
    dismissProgressDialog();
    return true;
}

//ProgressDialog progressDialog; I have declared earlier.
private void showProgressDialog() { 
    progressDialog = new ProgressDialog(N12ReadScreenActivity.this);
    progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
    progressDialog.setMessage("Downloading files...");
    progressDialog.show();
}

private void dismissProgressDialog() {
    if(progressDialog != null)
        progressDialog.dismiss();
}
Vielleicht wird das nicht lösen, die Frage, aber warum nennt man thread.run()? Sie können einfach anrufen thread.start() und thread erstellt. Ich war schon immer mit AsyncTask für das herunterladen mehrerer Dateien und hatte nie irgendwelche Probleme mit es zu benutzen, und die Aktualisierung der UI-thread ist nicht eine harte Aufgabe zu.

InformationsquelleAutor Mathew | 2011-06-23

Schreibe einen Kommentar