kullanımını Timer
önlemek veya kendi sınıf Thread
uzanan yazmak istersen
Ayrıca kendi ChangeListener
arayüzünü yazabiliriz.
böyle şeyler Googling iyi bir başlangıç size
düzenlemeyi vermelidir: o onun niyetinde ne oldukça açık değildir sorudan. Belki de, olaydan hemen sonra değil, tam bir süre içinde bir yöntem çağırmak istiyordur. Bu model için, zamanlayıcıya sadık kalmayı ya da kendi İpucumu yazmayı tercih ediyorum. Kendi Thread'ını yazmak, belirli kullanıcı gereksinimlerini yorumlamanın en iyi yoludur. Diğer taraftan, eğer bu olayları gerçekten dinlemek durumundaysa, Timer desenim tamamen yanlış olur.
Örnek: Kullanıcılar isterse (istekleri = doğru) isterse veritabanını (web tarayıcı oyununu hayal et) her 5 dakikada bir güncellemek istiyorum. Yanlış istek ile veritabanını güncellemem gerekmiyor. Immediatelly güncelleme veritabanı (örneğin, oyuncuların toushands ile oyun Tribal Wars istatistikleri) tamamen overkill.
+1. Boolean'ın kendisini izlemek isteyip istemediğinizi merak edersiniz veya bunun yerine, değişen statüsünde olan listeyi dinleyici listesine sahip olup olmamanız ve boolean'daki modunu gerçekleştirdiğinde değişiklik olaylarını tetiklemeniz gerekir. – akf
@aioobe -> şimdi düzenle düzenleme – Xorty
+1 ... ama birkaç nokta: dinleyiciler listesi muhtemelen final olmalı, getValue() senkronize edilmez, Bir dinleyici bildirildiğinde bir dinleyici olarak kendisini kaldırmaya çalışırsa ConcurrentModificationException için. Bu son sorunu ArrayList yerine bir CopyOnWriteArrayList kullanarak çözebilirsiniz. – Adamski