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ể.
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.
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.
MainActivity.java
Bạn thực hiện việc Đăng ký trong hàm onCreate()
Tạo một Class EventBus
Hàm đăng ký lắng nghe sự kiện
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.
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.
2. Những lợi ích của Eventbus
- Đơn giản trong giao tiếp giữa các Component
- phân biệt giữa sự kiện nhận và gửi
- Tối ưu trong việc thực hiện với UI và background Threads
- Tránh những lỗi về vòng đời
- 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 ngheHiện nay trong EventBus có những kiểu gửi sự kiện như sau:
Bước 2. Đăng ký sự kiện
Bước 3. Hủy sự kiện đăng ký
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 ActivityMainActivity.java
Bạn thực hiện việc Đăng ký trong hàm onCreate()
Tạo một Class EventBus
public class EventBus {Đăng ký sự kiện
private static Bus sBus;
public static Bus getBus() {
if (sBus == null)
sBus = new Bus();
return sBus;
}
}
@OverrideHủy sự kiện lắng nghe
protected void onStart() {
super.onStart();
EventBus.getBus().register(this);
}
@OverrideHàm lắng nghe sư kiện
protected void onStop() {
super.onStop();
EventBus.getBus().unregister(this);
}
@SubscribeĐối với Activity thứ 2 SecondActivity.java
public void onEvent(MessageEvent event) {
Toast.makeText(this, "Hey, my message" + event.getMessage(), Toast.LENGTH_SHORT).show();
}
Hàm đăng ký lắng nghe sự kiện
@OverrideHàm hủy lắng nghe sự kiện
protected void onStart() {
super.onStart();
EventBus.getBus().register(this);
}
@OverrideHàm gửi sự kiện
protected void onStop() {
super.onStop();
EventBus.getBus().unregister(this);
}
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