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();
}
InformationsquelleAutor Mathew | 2011-06-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie, diese .. es ist einfach
InformationsquelleAutor cinemaputar.com
Versuchen Sie bitte folgenden Code .
Hier in diesem code, wenn immer Ihr Download wird abgeschlossen genannt response-handler und Ihre Fortschritts-dialog geschlossen wird.
ja schließen Sie das Dialogfeld nach der erste thread fertig ist . Sie müssen den code so ändern, wie es wird, rufen Sie wieder Ihre Funktion...
InformationsquelleAutor Chirag
In downloadFiles() Sie zeigen den dialog, dann starten Sie eine Anzahl von threads, und werden, nachdem Sie gestartet wurde der dialog bekam entlassen. Ich glaube nicht, dass dies ist, was Sie wollen, als das Dialogfeld wird geschlossen, nachdem der Letzte thread gestartet wird und nicht nach dem der Letzte thread beendet wurde.
Den dismissProgressDialog () - Methode muss aufgerufen werden, nachdem der Letzte thread seine Arbeit beendet hat. So wird am Ende der Ausführung von code in den thread, die Sie haben zu prüfen, ob andere threads noch laufen, oder ob Sie schließen können Sie den dialog wie kein anderer threads ausgeführt werden.
InformationsquelleAutor Flo
Versuchen Sie den folgenden code, und lassen Sie mich wissen, wie es geht:
InformationsquelleAutor Mahendra Liya