Ich habe einen Hintergrund-Thread, der 3 asynctasks aufruft, um Aufgaben gleichzeitig auszuführen. Der aufrufende Thread fungiert als Warteschlange für drei Sätze dieser Aufgaben.Halten Sie den Aufruf Thread, bis mehrere asynctask beendet
Also im Grunde muss ich 3 asynctasks gleichzeitig aufrufen und sobald sie abgeschlossen sind, möchte ich die nächsten drei Aufgaben in der Warteschlange aufrufen und wiederholen.
Ich habe jedoch Probleme beim Anhalten der Anrufer-Thread, bis die drei asynctask beendet ist. Als Ergebnis werden die nächsten drei Aufgaben in der Warteschlange ausgeführt, bevor die vorherigen drei Aufgaben abgeschlossen sind.
So gibt es sowieso den Anrufer Thread zu halten, bis die Asyntasks abgeschlossen sind. Ich weiß, dass Sie .get() in asynctask verwenden können, aber die drei asynctasks können nicht gleichzeitig ausgeführt werden.
Vielleicht mit übergeben Sie einen Zuhörer auf Ihre 3 asyntask und rufen Methode Ihrer Zuhörer in der OnPostExecute Ihres 3 AsyncTask, wenn die 3 AsyncTask diese Methode aufrufen musste getan werden könnte, können Sie Ihre 3 weiter AsyncTask starten. Und ich denke, dass Sie einen Service und kein Gewinde für das Starten Ihrer asynctask verwenden sollten. Hoffe, dass Hilfe. – Illuyankas
Ich benutze den Looper, um Aufgaben in die Warteschlange zu stellen und damit konnte ich keine Möglichkeit finden, die nächste Aufgabe anzuhalten. –
Wenn ich mich gut erinnere, ist Looper nicht für Pause gemacht. Wenn ich etwas tun musste, passiere ich den Dienst, der eine Liste deiner Aufgabe bekommt (die dynamisch gesetzt werden kann) und 3 Aufgaben gleichzeitig starten, wenn sie fertig sind, starte das Kommando erneut, während du eine Aufgabe in der Warteschlange oder etwas ähnliches hast . – Illuyankas