3 Stimmen

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

Ich stoße auf ein Problem mit der Art und Weise, wie meine 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);
}

Ich erstelle hier ein neues Asynctask-Objekt, weise es firstTask zu und führe es dann aus. Ich möchte dann eine separate Asynctask auslösen, wenn die erste fertig ist und sicherstellen, dass sie einen Erfolgswert (in diesem Fall 1) zurückgibt. Dies funktioniert perfekt auf Android 2.0 und höher. Ich teste jedoch mit Android 1.5 und es tauchen Probleme auf. Der obige Code führt die erste Asynctask aus, aber doInBackground() wird nie aufgerufen, obwohl onPreExecute() aufgerufen wird. Wenn ich die erste Aufgabe ohne die get()-Methode ausführe, wird doInBackground() aufgerufen und alles funktioniert wie erwartet. Nur habe ich jetzt keine Möglichkeit, festzustellen, ob die erste Aufgabe erfolgreich abgeschlossen wurde, so dass ich der zweiten Aufgabe sagen kann, dass sie ausgeführt werden soll. Ist es sicher anzunehmen, dass dies ein Fehler mit asynctask auf Android 1.5 ist? Insbesondere, da die API ( https://developer.Android.com/reference/Android/os/AsyncTask.html#get%28%29 ) sagt, dass die get-Methode seit API 3 implementiert ist. Gibt es eine Möglichkeit, dies zu beheben? Oder eine andere Möglichkeit, um festzustellen, dass die erste Aufgabe abgeschlossen ist?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X