Callback vom Thread

  • Hallo,


    ich stehe gerade vor dem Problem, dass ich nicht genau weiß wie man bei Android am besten aus Threads zurückkehrt. Zeitaufwendige Operationen sollen ja in einem Thread außerhalb des main thread durchgeführt werden. Dabei rufe ich aus der Activity zB den Thread auf, lasse ihn sein Zeug durchführen bzw warten und zeige so lange ein PrograssBar an. Der Thread ruft dann die nächste Activity auf so bald die Antwort kommt.


    Ist das denn in Ordnung so? Oder soll man zwischen den Activities nicht aus einem Thread heraus navigieren? Wie ist denn die beste Lösung um aus dem Thread der nur eine einzige, nicht parallele Aufgabe erfüllen soll zurückzukehren bzw. weiterzumachen?


    Danke!

  • Hallo danielb,
    >Zeitaufwendige Operationen sollen ja in einem Thread außerhalb des main thread durchgeführt werden.


    Wenn Du im Main - Thread auf die Ausführung wartest, dann bringt der Start eines Extra - Threads eigentlich nichts. Um Deinen Code übersichtlicher zu gestalten lege jeweils eine Extra - Klasse an und starte diese.


    Gruss Klaus.

  • Hi KlaRa54,


    Zitat

    Wenn Du im Main - Thread auf die Ausführung wartest, dann bringt der Start eines Extra - Threads eigentlich nichts. Um Deinen Code übersichtlicher zu gestalten lege jeweils eine Extra - Klasse an und starte diese.


    Das stimmt so nicht ganz.
    Alles was sich innerhalb des Main-Thread ( oder auch UI-Thread) befindet wird hintereinander abgearbeitet.
    Sollte jetzt irgend etwas dabei sein was länger dauert (Datenbank Abfrage, Website Aufruf, Berechnungen etc) KANN es dazu kommen das der UI-Thread warten muss. In der Regel macht er das nicht länger als 3s geht es dann nicht weiter blockiert er und eine Exception wird abgefeuert. Der User bekommt dann an eine Mitteilung angezeigt die ihn fragt ob er entweder warten möchten oder die App beenden. In einigen Fällen schmiert die App auch ganz ab .


    @danielb: Hast du dir mal die Klasse AsynTask angesehen?


    Mfg TItus

  • Hallo titus,
    > In der Regel macht er das nicht länger als 3s geht es dann nicht weiter blockiert er und eine Exception wird abgefeuert.


    Das wusste ich noch nicht. Ich habe meinen Source mal direkt kontrolliert. Instinktiv habe ich alles richtig gemacht. Meine Aufrufe zu einem Webservice laufen generell asynchron.


    Gruss Klaus.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!