gagahhag Geschrieben June 6, 2013 at 06:19 Geschrieben June 6, 2013 at 06:19 Guten Morgen alle zusammen ich möchte auf meinen Bricklets die Listener entfernen, dazu gibt es (leider) nur eine Methode, wobei der entfernende Listener bekannt sein muss. Dies ist nicht immer der Fall, v.a. wenn man anonyme Klassen für die Listener verwendet. Ich habe auch keine Methoden gefunden, um an alle Listeners eines Bricklets zu kommen! Wäre es möglich, entsprechende Methoden aufzunehmen? Zum Beispiel removeAllTemperatureListeners() oder getAllTemperatureListeners() für das Temperatur-Bricklet. Zitieren
thunderbird Geschrieben June 6, 2013 at 09:56 Geschrieben June 6, 2013 at 09:56 Ich muss sagen die Idee finde ich sehr gut. Damit könnte man dann ja auch überprüfen ob auf dem Bricklet ein Listener aktiv ist oder nicht und notfalls einen starten. Wichtig wäre, dass diese Infos dann aber auch direkt vom Brick/Bricklet kommen und nicht aus der Liste in den Bindings. Zitieren
gagahhag Geschrieben June 6, 2013 at 10:12 Autor Geschrieben June 6, 2013 at 10:12 Wichtig wäre, dass diese Infos dann aber auch direkt vom Brick/Bricklet kommen und nicht aus der Liste in den Bindings. Die Listeners selbst müssen aus den Bindings kommen. Ich vermute nicht, dass die Brick/Bricklets überhaupt wissen, dass es Listeners hat? Ansonsten könnte man noch so Methoden wie hasTemperatureListener() machen, welche halt mit true/false antworten. Zitieren
thunderbird Geschrieben June 6, 2013 at 12:14 Geschrieben June 6, 2013 at 12:14 Oder so. Mir ist wichtig, dass ich in meinem Programm sehen kann ob ein Bricklet gerade für ein Listener registriert ist oder nicht. Zitieren
AuronX Geschrieben June 6, 2013 at 18:17 Geschrieben June 6, 2013 at 18:17 Es ist zweiteilig: Das tatsächliche Bricklet (also die Hardware) sendet dann die Callbacks aus, wenn beispielsweise bei der Temperatur die CallbackPeriod gesetzt ist. Alles weitere interessiert das Bricklet nicht. Deine Bindings hingegen merken sich nun welche Listener jeweils registriert sind und stellen das jeweils zu sobald eine Nachricht vom Bricklet kommt. Methoden zum einzelnen Entfernen sollten meiner Erinnerung nach gut möglich sein. Bei den Is*-Methoden würdest du halt abfragen ob gerade ein Listener registriert ist, aber NICHT ob auch die entsprechende Period einen Wert > 0 hat. Das müsstest du dann in zwei Abfragen erledigen wenn du beides wissen willst. Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.