Sử dụng EventBus trong Android

Trong ứng dụng android thường sẽ có nhiều thành phần như : Activity, Service, BroadcastReceiver và còn nhiều thành phần khác. Nhưng làm sao để các thành phần này có thể giao tiếp với nhau. Trong bài viết này chúng ta sẽ cùng tìm hiều về thư viện EventBus trong android để giải quyết vấn đề trên.

EventBus trong Android là một thư viện mã nguồn mở khá phổ biến đc tạo ra để giải quyết các bài toán về giao tiếp giữa các thành phần trong ứng dụng. Bằng cách sử dụng mô hình publisher/subscriber. Sử dụng EventBus bạn có thể pass message từ 1 class tới một hoặc nhiều class khác chỉ trong 1 dòng code.

Bên trên là mô hình publish/subscriber trong EventBus. Khi 1 publisher publish 1 gói tin lên eventbus thì các subscriber sẽ nhận được gói tin đó. Vậy thông qua EventBus thì 1 publisher có thể gửi gói tin cho nhiều subscriber.

Để dễ dàng tiếp cận với EventBus trong Android ta sẽ cùng nhau xây dựng 1 ứng dụng sử dụng thư viện EventBus để push 1 thông báo khi thiết bị được cắm sạc. Vì thay trạng thái sạc pin là 1 sự kiện của hệ thống nên ta cần xây dựng 1 BroadcastReceiver để lắng nghe sự kiện này. Và một activity để ta có thể hiển thị thông báo.

1. File Manifest :

Ta cần khai báo 1 Receiver để lắng nghe sự kiện sạc thiết bị và 1 Activity :

2. Download EventBus và copy vào trong project

Để download EventBus trong Android ban vào đường dẫn tại đây

Sau khi tải xuống bạn copy vào trong project:

3. Xây dựng class BroadcastReceiver:

Trong class này ta đã khai báo 1 đối tượng EventBus và trong onReceiver sẽ post 1 message là thời gian nhận sạc và nó sẽ gửi đến các class khác regist nó.

4. MainActivity :

5. Kết thúc:

Vậy là ta vừa làm quen với EventBus trong Android qua 1 ví dụ cơ bản. Trong thực tế ứng dụng sẽ nhiều thành phần hơn: Activity, Fragment… đòi hỏi ta phải đồng bộ dữ liệu, truyền dữ liệu qua lại giữa các thành phần đó và với thư viện EventBus sẽ là 1 trợ thủ đắc lực dành cho bạn.

Tải mã nguồn ngay bên dưới.

Sử dụng EventBus trong Android

Cảm ơn các bạn đã theo dõi bài viết, chúc các bạn thành công!

(Tác giả: Ninh Luyến)

Bình luận

Loading...