sự khác biệt giữa cuộc gọi lại và người nghe là gì?


18

Trong blackberry, chúng ta có thể ghi đè phương thức keyChar () và ghi lại sự kiện nhấn phím hoặc chúng ta có thể đăng ký onKeyPressListener. tôi biết, onKeyListener là mẫu quan sát.

Trong Android cũng có KeyEvent.callback và onKeyListener

Cả hai đều là sự kiện tại sao chúng ta không cần phải đăng ký cho sự kiện keyChar. sự khác biệt giữa cả hai mô hình là gì?

Câu trả lời:


14

Có thể có nhiều người nghe cho một số loại sự kiện, nhưng chỉ có một cuộc gọi lại.


Trong Android, chúng tôi chỉ có thể đặt một OnClickListener cho một chế độ xem.
Vivart

2
Rất có thể định nghĩa về "người nghe" của họ không khớp với các sản phẩm khác. Thông thường, bạn không có phương thức "setFooBarListener ()", nhưng phương thức "addFooBarListener ()".
user281377

3
Một sự khác biệt khác có thể có callbacknghĩa là một hàm (hoặc đóng hoặc ủy nhiệm), trong khi đó listenerlà một đối tượng của một lớp thực hiện giao diện Listener tương ứng.
user281377

Vivart: không thành vấn đề, dù sao câu trả lời của tôi cũng không tốt
user281377

-5

Tôi cho rằng bạn có một ứng dụng sử dụng thư viện:

Trình nghe: Thư viện chạy một số mã trên dữ liệu của nó, nhưng, mã được triển khai trên Ứng dụng.

Gọi lại: Ứng dụng chạy một số mã trên dữ liệu của nó, tuy nhiên, mã được triển khai trên Thư viện.

Bởi vì thư viện không thể nhìn thấy ứng dụng, vì vậy không có cách nào để thay thế Listener cho trường hợp đó.

Tất nhiên Ứng dụng có thể thấy thư viện, nhưng đôi khi thư viện muốn ẩn mã của nó và giúp ứng dụng có ý nghĩa với nó

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.