1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. r4in, 10.05.2011 #1
    r4in

    r4in Threadstarter Android-Hilfe.de Mitglied

    Hi Leute,

    in vielen Tutorial wird der Progressdiolag mit einem Thread beschrieben, diese Tuts funktionieren auch bei mir sofort. Sie sind so aufgebaut

    Progressdialog.show()

    Thread läuft /bzw schläft ne Zeit

    Progressdialog.dismiss()

    da funktioniert es auch so wie es sein soll.

    Jetzt hab ich aber eine Methode die mir Sachen vom Server lädt und wärend diese Wartezeit möchte ich einen Progressdialog für den User anzeigen lassen. Ich gehe da genauso vor wie in dem Tutorial.

    Progressdialog.show()

    Methodenaufruf()

    Progressdialog.dismiss()

    ABER bei mir erscheind der PD immer nur, wenn die Methode schon abgearbeitet worden ist und die Daten schon angekommen sind. Wo ist mein Denkfehler?

    Danke Sebastian
     
  2. DieGoldeneMitte, 10.05.2011 #2
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Offenbar wird dein Code innerhalb des UI Threads ausgeführt.

    Du musst dein Methodenaufruf() in einem eigenen Thread ausführen, sodass die UI wieder zum Zuge kommt, bevor die Methode fertig ist.
     
    Zuletzt bearbeitet: 10.05.2011
  3. Mort, 10.05.2011 #3
    Mort

    Mort Android-Lexikon

    Ganz einfach: Änderungen an der Oberfläche werden erst durchgeführt, wenn 'ne Funktion im UI-Thread abgearbeitet wurde. Mal abgesehen davon, dass deine Variante einen "Die Anwendung reagiert nicht"-Dialog geradezu provoziert, weil die Funktion vermutlich etwas länger dauert...
    show() und dismiss() müssen also in unterschiedlichen Methoden aufgerufen werden. Üblicherweise wird dismiss() über einen Thread oder Service-Callback angestoßen. Da beides nicht im UI-Thread läuft, muss das über Handler.run() dort eingereiht werden.
    Wichtig ist auch, das Thread- bzw. Service-Handling beim Pausieren und Stoppen der Activity zu beachten. Ein Thread sollte abgebrochen werden, ein Service kann auch weiterlaufen, dann muss man aber darauf achten, den ProgressDialog im onResume/onStart wieder anzuzeigen. Und Referenzen auf den ProgressDialog unbedingt spätestens im onStop aufräumen (myProgDlg = null), sonst kann's zu Speicherlöchern durch interne Cross-Referenzen kommen. Böse Falle dabei ist übrigens auch, dass bei Konfigurationsänderungen (z.B. Drehen des Geräts) standardmäßig die Activity komplett neu gestartet wird.
     
  4. r4in, 10.05.2011 #4
    r4in

    r4in Threadstarter Android-Hilfe.de Mitglied

    Ahh, ok ich werde es mit Handler mal probieren. Danke für die Hilfe!
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[OFFEN] Frage zum Einsatz von Qualifiers für die dimens.xml Android App Entwicklung 30.08.2017
[ERLEDIGT] Fragen zur Play Developer Console, wie Steuern etc. Android App Entwicklung 29.08.2017
[OFFEN] Activity als Dialog - RecyclerView funktioniert nicht mehr Android App Entwicklung 14.08.2017
[ERLEDIGT] AlertDialog.Builder: 2x Tippen um Dialog zu schließen Android App Entwicklung 07.08.2017
[ERLEDIGT] Fragen zum Einstieg in APP-Entwicklung Android App Entwicklung 01.08.2017
[ERLEDIGT] Frage zu Datenschutz bei Appveröffentlichung Android App Entwicklung 31.07.2017
[ERLEDIGT] Frage zu den drawable-Ordnern Android App Entwicklung 20.05.2017
[OFFEN] Rückkehr aus Dialog Fragment. Wie? Android App Entwicklung 29.04.2017
[ERLEDIGT] RecyclerView in Alert(Dialog) Android App Entwicklung 25.04.2017
[ERLEDIGT] Interpolator für einen Custom Dialog verwenden in einem Fragment Android App Entwicklung 20.03.2017
Du betrachtest das Thema "Frage zur Progress Dialog" im Forum "Android App Entwicklung",