AsyncTasks teilen sich die Arbeit - wie die Ergebnisse zusammenfügen?

  • Hallo,


    ich versuche die Berechnung von Funktionswerten auf mehrere AsyncTasks aufzuteilen, diese liefern jeweils ein IntArray und eine Sequenznummer zurück (damit ich später weiß, wo im gesamten Array das Teilstück hinkommt), mein aktueller Versuch sieht so aus:


    Allerdings stürzt die App kommentarlos ab (nicht mal ein Fenster auf meinem Smartphone erscheint), meine Idee ist, dass ich allen AsyncTasks die selbe Referenz auf das Callback-Objekt übergebe, kann das vllt zu Problemen führen?

  • Hi versuche mich gerade etwas in Kotlin einzuarbeiten. Kann deine Code nicht richtig nachvollziehen. In einener Aynctask Klasse, auch in Kotlin gibt es die Fuktion "doinbackrund" . Poste mal die komplette Klasse mit Aufruf aus der Main Activity. So kann ich nicht nachvollziehen was du da machen willst.


    Was mir schon komisch vorkommt ist das du dein Array als val (Konstante unveränderbar) erstellst.
    val emptyArray = IntArray(iWidth, {_-> -1})

  • naja rein abstrakt betrachtet würde ich nach dem ausführen des tasks jeweils die ergebnisse in einer Liste oder map speichern. Der Asynctask bietet dafür die onPostExecute methode. Somit greifst du nur im Haupthread auf die Liste zu.

Jetzt mitmachen!

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