В чем разница между обратными вызовами и слушателями?

18

В blackberry мы можем переопределить метод keyChar () и захватить событие нажатия клавиши, или мы можем зарегистрировать onKeyPressListener. я знаю, onKeyListener это шаблон наблюдателя.

В андроиде также есть KeyEvent.callback и onKeyListener

Оба являются событиями, поэтому нам не нужно регистрироваться на событие keyChar. в чем разница между обоими образцами?

Vivart
источник

Ответы:

14

Для какого-либо типа события может быть много слушателей, но только один обратный вызов.

user281377
источник
В Android мы можем установить только один OnClickListener для представления.
Виварт
2
Вполне возможно, что их определение «слушатель» не соответствует определению других продуктов. Обычно у вас нет метода setFooBarListener (), но есть метод addFooBarListener ().
user281377
3
Другое различие может состоять в том, что это callbackозначает функцию (или замыкание или делегат), в то время listenerкак это объект класса, который реализует соответствующий интерфейс Listener.
user281377
Виварт: не важно, мой ответ не так
уж
-5

Я предполагаю, что у вас есть приложение, которое использует библиотеку:

Слушатель: Библиотека запускает некоторый код в своих данных, но код реализован в приложении.

Обратный вызов: приложение выполняет некоторый код на своих данных, однако код реализован в библиотеке.

Поскольку библиотека не может видеть приложение, поэтому нет способа использовать Listener для этого случая.

Конечно, приложение может видеть библиотеку, но иногда библиотека хочет скрыть свой код и помогает приложению разобраться с этим

кругозор
источник