J
Juleru
Fortgeschrittenes Mitglied
- 5
Hallo zusammen!
Ich benutze einen AlertDialog in meiner Java 11/Android 11 App, um den User über den Fortschritt des Login-Prozesses zu informieren, das schließt auch den Download einiger Dateien ein (natürlich über einen Background Thread, die Anzahl kenne ich im Voraus nicht). Ein AlertDialog deswegen, weil die Dateien heruntergeladenen werden müssen, um die App zu benutzen, und währenddessen darf der User nicht irgendwelche Einstellungen ändern, etc..
Ich füge dem AlertDialog vor jedem größeren Schritt eine Zeile hinzu mit dialog.setMessage(alt + System.lineSeparator() + neu) und das funktioniert problemlos. Nun möchte ich den Dialog aber auch mit dem Namen der Datei, die gerade heruntergeladen wird, updaten. Dafür gebe ich eine Referenz des Dialogs von meiner Activity an die Download-Klasse weiter und mache dann das:
Den Code für den Download der Dateien selbst habe ich noch nicht geschrieben, das ^ rennt also 100%-ig am Main Thread.
Das Problem: Der Dialog updatet erst, wenn die Schleife komplett durchgelaufen ist und man sieht nur den Namen der letzten Datei, in der Konsole werden aber natürlich alle Namen ausgegeben.
Wieso passiert das?
Ich mache das genauso in der iOS-Variante meiner App (funktioniert problemlos), braucht Androids AlertDialog einfach länger, um seine TextView upzudaten? Kann man das irgendwie umgehen bzw. ein Update "erzwingen"?
Ich benutze einen AlertDialog in meiner Java 11/Android 11 App, um den User über den Fortschritt des Login-Prozesses zu informieren, das schließt auch den Download einiger Dateien ein (natürlich über einen Background Thread, die Anzahl kenne ich im Voraus nicht). Ein AlertDialog deswegen, weil die Dateien heruntergeladenen werden müssen, um die App zu benutzen, und währenddessen darf der User nicht irgendwelche Einstellungen ändern, etc..
Ich füge dem AlertDialog vor jedem größeren Schritt eine Zeile hinzu mit dialog.setMessage(alt + System.lineSeparator() + neu) und das funktioniert problemlos. Nun möchte ich den Dialog aber auch mit dem Namen der Datei, die gerade heruntergeladen wird, updaten. Dafür gebe ich eine Referenz des Dialogs von meiner Activity an die Download-Klasse weiter und mache dann das:
Java:
for(String f:fileNames) {
Log.d(TAG,(alt+System.lineSeparator()+f));
dialog.setMessage(alt+System.lineSeparator()+f); //"alt" bleibt immer gleich, damit sich nur der Dateiname ändert!
}
Das Problem: Der Dialog updatet erst, wenn die Schleife komplett durchgelaufen ist und man sieht nur den Namen der letzten Datei, in der Konsole werden aber natürlich alle Namen ausgegeben.
Wieso passiert das?
Ich mache das genauso in der iOS-Variante meiner App (funktioniert problemlos), braucht Androids AlertDialog einfach länger, um seine TextView upzudaten? Kann man das irgendwie umgehen bzw. ein Update "erzwingen"?