invalidate () внутри потокового приложения для Android - PullRequest
14 голосов
/ 05 января 2011

Я новичок в программировании Android, но у меня довольно большой опыт программирования Blackberry.

Я создал приложение, которое имеет класс активности (main.java) и класс представления (game.java).

Внутри класса представления у меня есть несколько растровых изображений, отображаемых на экране.Я создал поток, и я перемещаю изображения вокруг него.Однако когда я вызываю invalidate () внутри потока, он никогда не перерисовывает экран.

Вы не можете сделать недействительным () экран из потока?Я знаю, что поток запущен и вызывается инвалид, просто он никогда не вносит изменения на экране.

1 Ответ

28 голосов
/ 05 января 2011

Вы должны использовать View.postInvalidate () , если вы вызываете его из потока не-пользовательского интерфейса. По документам:

public void postInvalidate () С тех пор: Уровень API 1

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

...