Например, чтобы обработать нажатие на Button необходимо воспользоваться методом setOnClickListener передав оному OnClickListener (слушатель). И такой Listener много где встречается.
А вот, у Google Maps, например, есть метод getMapAsync, в который надо передать OnMapReadyCallback.
Чем отличается Listener от Callback?
Слушатель, по сути, это и есть callback.
Я не буду объяснять, для чего нужны коллбэки, почему их используют в асинхронном программировании, и всё такое прочее.
Но вы видимо не совсем поняли: слушатель это просто обычный коллбэк, вы передаете его какому-то обработчику, этот коллбэк там где-то регистрируется и в последствии может быть неоднократно вызван.
Тот же пример, который вы привели - OnClickListener - это обычный интерфейс, и в случае нажатия пользователем на ваш элемент, будет вызван определенный метод.
Где-то происходит "прослушка" событий, и, как только событие произошло, оно будет "услышано". На разные события есть свои "слушатели", которые на них реагируют. И, в случае если коллбэк (слушатель) передан и событие произошло, будет вызван нужный метод - например, тот же onClick у слушателя нажатий, и вы сможете это событие обработать.
Принципиально ничем. Единственное заметное отличие в том, что обычно есть возможность зарегистрировать множество слушателей, но функцию обратного вызова можно использовать только одну.
Listener принято называть интерфейсы обратного вызова, ответственные за реакцию на действия, как нажатия кнопки.
Callback - интерфейсы обратного вызова, ответственные за реакцию на события, как завершение получения данных.
Стоит заметить, что разделение это весьма условно и вполне может не соблюдаться какими то разработчиками.
По сути реализации это один и тот же механизм интерфейса обратного вызова и в этом плане у них отличий нет.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости