Jump to content

[Java] Entfernen aller Listener (Improvement?)


Recommended Posts

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...