2010-06-10 10 views
8

Ich habe die Android API und andere Beiträge hier auf Stackoverflow geschaut, aber nicht in der Lage, dies herauszufinden.android: zeigt einen Fortschrittsdialog

Meine App lädt Dateien auf die SD-Karte. Ich würde gerne einen "loading ..." -Dialog während des Herunterladens der Datei öffnen und dann verschwinden lassen, wenn der Download beendet ist. Dies ist, was ich mit der Android-API kam:

aber der Dialog wird nicht angezeigt. wenn ich es debugge, behauptet es, dass es zeigt, aber es ist offensichtlich nicht auf dem Bildschirm.

was kann ich tun?

+0

läuft der Download-Code in einem separaten Thread? –

+0

Nein, es läuft auf demselben Thread wie die Aktivität. – mtmurdock

+0

Das ist das Problem :) –

Antwort

3

Sie müssen den Download-Code in einen separaten Thread ausführen. Der einfache Weg ist AsyncTask

Schauen Sie auch this article auf verwenden, wie es zu benutzen

+0

Ich hatte tatsächlich ein Treffen, wo wir über Threading gesprochen haben und ich herausgefunden es. Ich musste es auch in eine separate Aktivität einfügen, so dass meine App nicht versuchen würde, die Datei zu laden, bevor die Download-Aktivität beendet war. danke für Ihre Hilfe! Du hast die Räder drehen lassen. – mtmurdock

2

ich ein etwas ähnliches Szenario haben, eher eine Pause Ebene Belastung während Zeug für eine Phase eines Spiels zu sein Setup. Ich starte den Dialog, Ebene Laden in einem Thread starten, die den Kontext übergeben wird und dies der Faden am Ende nennen:

mContext.runOnUiThread(new Runnable(){ 
    public void run() { 
     mContext.mProgressDialog.dismiss(); 
    } 
}); 

Ich finde die runOnUiThread() -Methode äußerst nützlich.

Verwandte Themen