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 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