2011-01-05 18 views
15

Android'lerin programlanmasında yeniyim, ancak böğürtlenleri programlama konusunda biraz deneyimim var.invalidate() bir iş parçacığı içinde android uygulaması

Etkinlik sınıfı (main.java) ve görünüm sınıfı (game.java) olan bir uygulama oluşturdum.

Görünüm sınıfının içinde, ekrana çizilen bazı bitmap'lerim var. Bir iş parçacığı oluşturdum ve görüntüleri iş parçacığı içinde taşıyorum. Ancak iş parçacığı içinde invalidate() yöntemini çağırdığımda, ekranı hiçbir zaman yeniden çizmez.

Ekranı iş parçacığından iptal edemiyor musunuz()? İş parçacığının çalıştığını ve geçersizliğin çağrıldığını biliyorum, yalnızca ekrandaki değişiklikleri yapmıyor.

cevap

26

Bir UI olmayan iş parçacığı olarak adlandırırsanız, View.postInvalidate() kullanmanız gerekir. Docs göre :

public void postInvalidate() beri: Bir invalidate olay döngü içinde bir sonraki döngü üzerinde gerçekleşmesi API Seviye 1

da. Görünümü bir UI olmayan iş parçacığından geçersiz kılmak için bunu kullanın.

+0

Vay o kadar kolaydı ki ... Son 30 dakikayı nasıl yapacağımı aradım ve bir zamanlar postInvalidate() ile karşılaşmadım. – Dave

+1

Evet, bazı işlevler, arama yaparken dokümanlardan gelen kötü davranışlara sahiptir;) – maid450