Was ist der Unterschied zwischen Rückrufen und Zuhörern?

18

In Blackberry können wir die keyChar () -Methode überschreiben und das Tastendruckereignis erfassen, oder wir können uns aufKeyPressListener registrieren. Ich weiß, onKeyListener ist Beobachtermuster.

In Android gibt es auch eine KeyEvent.callback und onKeyListener

Beides sind Ereignisse, bei denen wir uns nicht für das keyChar-Ereignis anmelden müssen. Was ist der Unterschied zwischen beiden Mustern?

Vivart
quelle

Antworten:

14

Es kann viele Listener für einen Ereignistyp geben, aber nur einen Rückruf.

user281377
quelle
In Android können wir nur einen OnClickListener für eine Ansicht festlegen.
Vivart
2
Es ist durchaus möglich, dass ihre Definition von "Zuhörer" nicht mit der anderer Produkte übereinstimmt. Normalerweise haben Sie keine "setFooBarListener ()" - Methode, sondern eine "addFooBarListener ()" - Methode.
user281377
3
Eine weitere Unterscheidung könnte darin bestehen, dass es sich um callbackeine Funktion (oder einen Abschluss oder einen Delegaten) handelt, während listeneres sich um ein Objekt einer Klasse handelt, die die entsprechende Listener-Schnittstelle implementiert.
user281377
Vivart: egal, meine antwort ist sowieso nicht so gut
user281377
-5

Ich nehme an, Sie haben eine Anwendung, die eine Bibliothek verwendet:

Listener: Die Bibliothek führt Code für ihre Daten aus, der jedoch in der Anwendung implementiert ist.

Rückruf: Die Anwendung führt Code für ihre Daten aus, der Code ist jedoch in der Bibliothek implementiert.

Da die Bibliothek die Anwendung nicht sehen kann, gibt es keine Möglichkeit, Listener für diesen Fall zu verwenden.

Natürlich kann die Anwendung die Bibliothek sehen, aber manchmal möchte die Bibliothek den Code verbergen und hilft der Anwendung, damit Sinn zu machen

Ken
quelle