У меня есть приложение для распознавания рукописного ввода - пользователь рисует пальцем, приложение распознает символы. Механизм распознавания работает в рабочем потоке, который имеет минимально возможный приоритет - Thread.MIN_PRIORITY
. Это чисто алгоритм CPU/памяти, без ввода-вывода. Тем не менее, когда поток активно работает, пользовательский интерфейс становится довольно изменчивым. Мазки пальца требуют заметной задержки. Я также замечаю, что события прикосновения теряются.
Разве это не то, что нужно было предотвращать потоками? Почему поток пользовательского интерфейса голодает для процессора? Как убедить систему обрабатывать рабочий поток как хорошо, низкоприоритетный фоновый поток?
Похоже, система вводит (охотно или из-за голода процессора) задержку между invalidate()
и onDraw()
. Могу ли я как-то снизить эту задержку?
Тестирование на относительно старом оборудовании - HTC Magic с Android 2.1.