Bitte geben Sie mir eine Beispielantwort.
Schritt 1 Suchen Sie nach Beispiel zum Herunterladen von Dateien in Android
Schritt 2 Suchen Sie nach Beispiel für die Ausführung von Operationen in AsyncTask.
Schritt 3 Suchen Sie nach Beispiel, wie der Download-Fortschritt während des Herunterladens angezeigt wird.
Schritt 4 Suchen Sie nach Beispiel zum Senden von benutzerdefinierten Broadcasts, wenn die Aufgabe abgeschlossen ist
Schritt 5 Suchen Sie nach Beispiel, wie AsysncTask-Operation auch bei Geräte-Rotation beibehalten werden kann
Schritt 6 Suchen Sie beispielsweise nach Download-Fortschritt in Benachrichtigung anzeigen.
Unten ist ein Beispielcode.
1. Verwenden Sie AsyncTask und zeigen Sie den Download-Fortschritt in einem Dialogfeld an
%Vor%Die obige Methode (doInBackground) läuft immer auf einem Hintergrund-Thread. Sie sollten dort keine UI-Aufgaben ausführen. Auf der anderen Seite werden onProgressUpdate und onPreExecute auf dem Benutzeroberflächen-Thread ausgeführt, sodass Sie die Fortschrittsanzeige ändern können:
%Vor%2. Herunterladen vom Dienst
Die große Frage ist hier: Wie aktualisiere ich meine Aktivität von einem Dienst ?. Im nächsten Beispiel verwenden wir zwei Klassen, die Ihnen vielleicht nicht bekannt sind: ResultReceiver und IntentService. ResultReceiver ist der, mit dem wir unseren Thread von einem Dienst aktualisieren können; IntentService ist eine Unterklasse von Service, die einen Thread für die Hintergrundarbeit von dort erzeugt (Sie sollten wissen, dass ein Service tatsächlich im selben Thread Ihrer App ausgeführt wird. Wenn Sie Service erweitern, müssen Sie manuell neue Threads generieren, um CPU-Blockierungsvorgänge auszuführen) .
Download-Service kann so aussehen:
%Vor%Fügen Sie den Dienst Ihrem Manifest hinzu:
%Vor%Und die Aktivität wird so aussehen:
// Initialisiere den Fortschrittsdialog wie im ersten Beispiel
// So feuern Sie den Downloader
%Vor%Hier kommt der ResultReceiver zum spielen:
%Vor%