Ich verwende derzeit AsyncTask
, um eine große Datei im Hintergrund innerhalb meiner App herunterzuladen. Derzeit wird der Download-Fortschritt als ProgressDialog
angezeigt, der über onProgressUpdate
wie folgt aktualisiert wird:
Das funktioniert gut, aber ich möchte jetzt eine Benachrichtigung in der Benachrichtigungsleiste verwenden, also behalten Sie den Überblick über den Download (da die Datei ziemlich groß sein kann und Benutzer von außerhalb der App den Überblick behalten möchten).
> Ich habe den folgenden Code ausprobiert, aber die Benutzeroberfläche beginnt schlecht zu laufen. Ich kann sehen, dass die publishProgress
sehr oft aufgerufen wird. Wie also könnte ich den Hintergrundcode ändern, um publishProgress
nur jede Sekunde
Wie könnte ich also den Hintergrundcode ändern, um publishProgress nur jede Sekunde aufzurufen?
Ich habe das schon einmal für eine Upload-Funktion gemacht, die% in Notification
zeigte, aber genau die gleiche Idee. Lassen Sie Ihre AsyncTask
verfolgen, was percentDone
der Download ist, und NUR rufen Sie publishProgress
auf, wenn sich percentDone
ändert. Auf diese Weise rufen Sie immer nur publishProgress
auf, wenn sich der heruntergeladene% ändert, und der Notification
muss daher aktualisiert werden. Dies sollte die UI-Verzögerung auflösen.
Ich habe dies als meine vorgeschlagene Implementierung geschrieben, hört sich an, als ob das OP es bereits funktionierte. Aber vielleicht hilft das einem anderen in der Zukunft:
%Vor%Tags und Links java android android-asynctask