Android: AsyncTask parallel starten

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.

 

und jetzt?

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