Zwei verschiedene AsyncTasks werden gleichzeitig ausgeführt
Ich habe insgesamt zwei verschiedene Implementierungen vonAsyncTask
, sagen wirAT1
undAT2
.
AT1
wird dann zuerst ausgeführtAT2
ausgeführt wird.AT1
wartet indoInBackground
bis umAT2
hat seine Aufgabe erfüllt, indem er diese Daten alle 500 ms abfragt. Das passiert aber nie.
Also, was ich im Grunde will, ist Folgendes:
Aber was zu passieren scheint, ist Folgendes:
AußerAT1
wird nie gemacht, undAT2
wird nie gestartet.
Gibt es eine Möglichkeit, diese beiden zu zwingen?AsyncTask
s auf zwei getrennten Threads ausgeführt werden, oder gibt es eine andere Lösung dafür?
Der erste Start ist nicht möglichAT2
und danach ausführenAT1
.
BEARBEITEN
Zur Klarstellung:AT1
wird ausgeführt, wenn ein Benutzer einen bestimmten Bildschirm öffnet und Daten für diesen Bildschirm basierend auf einem Standort herunterladen muss.AT2
wird beim Standortwechsel ausgeführt. In diesem Fall werden einige Berechnungen durchgeführt, die im UI-Thread nicht durchgeführt werden können.
WannAT2
ist nie durchgeführt worden,AT1
Da es keinen Speicherort zum Herunterladen von Daten gibt, muss darauf gewartet werdenAT2
beenden. WannAT2
hat ausgeführt wurde, sind die Standortdaten bereits vorhanden, undAT1
muss nicht warten
Dieses Problem tritt auch bei ICS auf, nicht bei Android 2.3diese Antwort schlägt vor.