Wenn der Arbeitsthread funktioniert, wird die Benutzeroberfläche abgehackt

Ich habe eine App zur Handschrifterkennung - der Benutzer zeichnet mit dem Finger, die App erkennt Zeichen. Die Erkennungs-Engine wird in einem Worker-Thread ausgeführt, der die minimal mögliche Priorität hat:Thread.MIN_PRIORITY. Es ist ein reiner CPU / Speicher-Algorithmus, überhaupt kein I / O. Wenn der Thread jedoch aktiv arbeitet, wird die Benutzeroberfläche ziemlich unruhig. Es dauert eine merkliche Verzögerung, bis die Fingerstriche angezeigt werden. Ich bemerke auch, dass Berührungsereignisse verloren gehen.

Ist das nicht genau das, was Threading vermeiden sollte? Warum ist der UI-Thread für die CPU ausgehungert? Wie kann das System davon überzeugt werden, den Worker-Thread als Hintergrund-Thread mit niedriger Priorität zu behandeln?

Es sieht so aus, als würde das System (freiwillig oder aufgrund von CPU-Engpässen) eine Verzögerung dazwischen einführeninvalidate() undonDraw(). Kann ich diese Verzögerung irgendwie verringern?

Testen auf relativ alter Hardware - HTC Magic mit Android 2.1.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage