Android 1.5: AsyncTask doInBackground () nicht aufgerufen, wenn get () -Methode aufgerufen wird

StackOverflow https://stackoverflow.com/questions/2502874

  •  21-09-2019
  •  | 
  •  

Frage

Ich laufe in ein Problem mit der Art und Weise meiner asynctasks ausgeführt werden. Hier ist das Problem Code:

firstTask = new background().new FirstTask(context);
if (firstTask.execute().get().toString().equals("1")) {
    secondTask = new background().new SecondTask(context);
}

Was ich hier mache ein neues AsyncTask Objekt erstellen, zuweisen es zu firstTask und Ausführung es dann. Ich möchte dann eine separate AsyncTask abzufeuern, wenn der erste getan wird und sicherstellen, dass es gibt einen Erfolg Wert (in diesem Fall 1). Das funktioniert perfekt auf Android 2.0 oder höher. Allerdings teste ich mit Android 1.5 und Probleme beginnen Aufspringen. Der obige Code wird das erste AsyncTask laufen, aber doInBackground () niemals trotz OnPreExecute () wird aufgerufen genannt. Wenn ich die erste Aufgabe, ohne die Methode get () auszuführen, wird doInBackground () aufgerufen und alles funktioniert wie erwartet. Aber jetzt habe ich keine Möglichkeit, zu bestimmen, ob die erste Aufgabe erfolgreich abgeschlossen, so dass ich die zweite Aufgabe ausführen berichten. Ist es sicher davon ausgehen, dass es sich dabei um einen Fehler mit AsyncTask auf Android 1.5? Vor allem, da die API ( https://developer.android .com / reference / android / o / AsyncTask.html # get% 28% 29 ) sagt, dass die get-Methode seit API 3 umgesetzt wurde. Gibt es eine Möglichkeit, dies zu beheben? Oder eine andere Art und Weise zu bestimmen, dass die erste Aufgabe beendet hat?

War es hilfreich?

Lösung

Wenn Sie (über get()) blockieren werden, warum stört Sie mit AsyncTask in erster Linie? Der ganze Punkt von AsyncTask ist nicht zu blockieren.

Wenn Sie möchten, haben SecondTask ausführen, wenn FirstTask geschehen ist, haben FirstTask SecondTask in FirstTask der onPostExecute() auszuführen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top