Wer hat schon mal einen größeren Submit (z.b. in ein SVN oder git Repository) schrittweise revertet/zurückgenommen? Ich zum Beispiel, als ich gestern einen echt dummen Fehler gesucht habe. Mein Problem bestand darin, das ich nicht wusste, dass AsyncTask sequentiell und nicht parallel ausgeführt werden. In Android 2.x war das mal kurzzeitig so, aber ab Android 3.x (honeycomb) ist es standardmäßig sequentiell. Das führt natürlich zu dem Verhalten, dass sich AsyncTask gegenseitig blockieren oder erst gar nicht ausgeführt werden.
Zum Glück hat man als Entwickler immer die Wahl, wie und wo ein AsyncTask gestartet wird. Man hat zum Beispiel folgende Möglichkeiten:
DownloadAsyncTask mytask = new DownloadAsyncTask(); // parallel in einen eigenen Thread starten mytask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); // sequentiell starten mytask.execute();
Copyright © 2014 AxxG – Alexander Gräsel
Kommentar verfassen