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?