Android: AsyncTask beschleunigen

Als Android-Entwickler ist man stets bemüht alle rechenintensiven und langwierigen Aufgaben in kleine externe Threads/AsyncTasks auszulagern. Aber wenn man mal die Verarbeitungszeit genau misst, fällt man fast vom Stuhl!
3 bis 5 mal so lange braucht ein AsyncTasks, um zum Beispiel Daten aus einer SQLite Datenbank zuladen. (Im Vergleich zum UI-Thread) Jedoch gibt es einen kleinen Trick, den ich in diesem Beitrag erkläre.

 

Der Trick

Der Trick besteht darin, dem Thread/AsyncTask eine höhere Priorität zugeben. Standardmäßig werden unter Android Thread/AsyncTask mit einer sehr sehr sehr niedrigen Priorität ausgeführt. Daher kann es zu vielen Unterbrechungen und/oder großen Verzögerungen kommen. Im folgenden Beispiel wird die Priorität eines AsyncTasks verändert:

protected Void doInBackground(Void... params) {
    Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
/* mach was */
}

 

Copyright © 2014 AxxG – Alexander Gräsel



Kommentar verfassen