Android SurfaceView onDraw против потока.onDraw - PullRequest
2 голосов
/ 06 июня 2011

Что лучше для игры для Android:

  • a SurfaceView с потоком рендеринга

    или

  • a SurfaceView с потоком, который вызывает функцию SurfaceView doDraw()

Спасибо.

1 Ответ

1 голос
/ 06 июня 2011

Рисунок в SurfaceView уже обрабатывается в отдельном потоке. Вам не нужно порождать новый.

См. API документ об этом:

Одна из целей этого класса - предоставить поверхность, на которой вторичный поток может рендериться на экран. Если вы собираетесь использовать его таким образом, вам необходимо знать о семантике потоков:

  • Все методы SurfaceView и SurfaceHolder.Callback будут вызываться из потока, выполняющего окно SurfaceView (обычно это основной поток приложения). Таким образом, они должны правильно синхронизироваться с любым состоянием, которое также затрагивается потоком рисования.
  • Вы должны убедиться, что поток чертежа касается только лежащей под ним поверхности, пока она действительна - между SurfaceHolder.Callback.surfaceCreated () и SurfaceHolder.Callback.surfaceDestroyed ().
...