Saturday, August 10, 2019

Tìm hiểu Eventbus trong Android

Xin chào các bạn hôm nay mình sẽ giới thiệu cho các bạn về Event bus trong Android, nói về EventBus với những lập trình Android thì không ai biết đến bởi những công dụng và lợi ích nó mang lại cho chúng ta rất đáng kể.
Tìm hiểu Eventbus trong Android

 1. Giới thiệu về EventBus

 EventBus dược google io sản xuất vào năm 2013 và nó được áp dụng cho lập trình Android, Event Bus đa được áp dụng  trước đó rất lấu không chi ngôn ngữ lập trình java. với Event Bus nó giúp cho chung ta điều phối các sự kiện đê nhằm giảm các sự kiện ngoài ý muốn, tăng bộ nhớ khi xử lý.
EventBus là một mã nguồn mở dành cho Android và java trog việc sử dụng những sự kiện như Publisher/Subscriber Sau đây là sơ đồ của EvenBus.
Eventbus trong Android

 2. Những lợi ích của Eventbus


  1.   Đơn giản trong giao tiếp giữa các Component
  2.   phân biệt giữa sự kiện nhận và gửi
  3.   Tối ưu trong việc thực hiện với UI và background Threads
  4.   Tránh những lỗi về vòng đời
  5.   Hiệu suất cao

 3. Cách cài đặt EventBus trong Android

 Nếu bạn sử dụng Eclipse bạn có thể thực hiện import như sau:
 compile 'com.squareup:otto:1.3.8'
 Nếu bạn dụng Android Studio thi bạn có thể import trong build.gradle
 implementation 'com.squareup:otto:1.3.8'

 4. Cách dùng EventBus trong Android

 Bước 1. tạo sự kiện để lắng nghe
 Bước 2. Đăng ký sự kiện
 Bước 3. Hủy sự kiện đăng ký
 Hiện nay trong EventBus có những kiểu gửi sự kiện như sau:
   PostThread : đây là kiểu mặc định, đơn giản khi gửi sự kiện. Và nó không cần thiết chạy trên một Main Thread.
   MainThread:  sự kiện sẽ được gọi từ Android's main thread. Và sẽ được gọi một cách trực tiếp
   BackgroundThread: sư kiện sẽ được gọi trong background thread. và nó sẽ được gọi trực tiếp ở nơi tạo sự kiện. và EventBus chỉ sử dụng 1 background thread để xử lý
   Async:  sự kiện này luôn độc lập với main thread. Vì thế tránh sử dụng nhiều cùng 1 lúc.EventBus cũng sử dụng 1 thread pool để có thể tái sử dụng lại.

 5. Thực hiện EventBus Android

 EventBus có thể chuyển đổi giữa liệu giữa các Activity với nhau hoăc giữa các Activity với Fragment, nên bài viết này mình sẽ  hướng dẫn cho các bạn thực hiện chuyển đổi giữa 2 Activity
 MainActivity.java
 Bạn thực hiện việc Đăng ký trong hàm onCreate()
 Tạo một Class EventBus
 public class EventBus {
    private static Bus sBus;
    public static Bus getBus() {
        if (sBus == null)
            sBus = new Bus();
        return sBus;
    }
}
Đăng ký sự kiện
 @Override
    protected void onStart() {
        super.onStart();
        EventBus.getBus().register(this);
    }
Hủy sự kiện lắng nghe
@Override
    protected void onStop() {
        super.onStop();
        EventBus.getBus().unregister(this);
    }
 Hàm lắng nghe sư kiện
 @Subscribe
    public void onEvent(MessageEvent event) {
        Toast.makeText(this, "Hey, my message" + event.getMessage(),          Toast.LENGTH_SHORT).show();
    }
Đối với Activity thứ 2 SecondActivity.java
Hàm đăng ký lắng nghe sự kiện
@Override
    protected void onStart() {
        super.onStart();
        EventBus.getBus().register(this);
    }
Hàm hủy lắng nghe sự kiện
@Override
    protected void onStop() {
        super.onStop();
        EventBus.getBus().unregister(this);
    }
Hàm gửi sự kiện
EventBus.getBus().post(new MessageEvent("hello Event bus"));

Trên đây là bài viết tìm hiểu về Eventbus trong Android , nếu các bạn có thắc mắc về Eventbus hãy comment ở bên dưới mình sẽ trả lời nhé, Cảm ơn các bạn đã theo dõi bài viết thư viện otto trong Android.

No comments:

Post a Comment