Проблемы с нитями Android из-за фоновых процессов - PullRequest
3 голосов
/ 08 марта 2010

Я написал очень простую игру с несколькими простыми анимациями, но я заметил, что когда телефон проверяет электронную почту или запускаются несколько других приложений, анимации, которые обновляются в моем потоке, начинают работать медленно или прерывисто.

Это проблема, так как игровая механика требует тщательного определения времени касаний экрана на основе анимации. Так что, если он начинает вести себя беспорядочно, игра не очень хорошо работает - и не очень весело.

Есть ли способ предотвратить это? Могут ли мои потоки иметь более высокий приоритет при запуске?

Ответы [ 3 ]

3 голосов
/ 09 марта 2010

Попробуйте установить приоритет нити на максимум. Это может сильно повлиять на производительность потока рендеринга в Android:

mThread.setPriority(Thread.MAX_PRIORITY)
2 голосов
/ 18 мая 2010

Из того, что я видел в исходном коде Android, кажется, что это предпочтительный способ изменить приоритет потока, к сожалению, я не могу найти много документации по этому поводу по сравнению с использованием класса Thread:

Process.setThreadPriority(Process.THREAD_PRIORITY_URGENT_DISPLAY);
0 голосов
/ 08 марта 2010

Если вы переключаетесь на телефон или другое приложение во время запуска игры, остановите игровую ветку. Проверьте на основы, такие как расточительное «обновление» материала, ненужные вещи. В качестве последнего исправления вы можете выполнить рисование в контексте GL.

Надеюсь, это поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...