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


18

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

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

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

Ответы:


14

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


В Android мы можем установить только один OnClickListener для представления.
Виварт

2
Вполне возможно, что их определение «слушатель» не соответствует определению других продуктов. Обычно у вас нет метода setFooBarListener (), но есть метод addFooBarListener ().
user281377

3
Другое различие может состоять в том, что это callbackозначает функцию (или замыкание или делегат), в то время listenerкак это объект класса, который реализует соответствующий интерфейс Listener.
user281377

Виварт: не важно, мой ответ не так
уж

-5

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

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

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.