Android 开发之第三方库之 EventBus

EventBus

EventBus 是一个 Android 端优化的 publish/subscribe 消息总线,简化了应用程序内各组件间、组件与后台线程间的通信。

极大简化了通信操作。


具体实现方法如下:

一.注册:

注册和解绑非常简单

 @Override
 public void onStart() {
     super.onStart();
     EventBus.getDefault().register(this);
 }
 
 @Override
 public void onStop() {
    EventBus.getDefault().unregister(this);
     super.onStop();
 }

二.定义事件类

POJO类

 public class MessageEvent {
     public final String message;
 
     public MessageEvent(String message) {
         this.message = message;
     }
 }

三.订阅

使用 注解 @Subscribe;

其中 ThreadMode 提供了四个常量:

  1. MainThread 主线程
  2. BackgroundThread 后台线程
  3. Async 后台线程
  4. PostThread 发送线程(默认)
 @Subscribe (threadMode = ThreadMode.MainThread)
 public void handleSomething(MessageEvent event){
     doSomethingWith(event);
 }

备注:

Event handling methods must be annotated by{@ Subscribe}, must be public, return nothing (void), and have exactly one parameter (the event).


四.发布

在任何地方都可以发布,所有订阅者都可以收到。

 EventBus.getDefault().post(new MessageEvent("Hello everyone!"));

五.缺点

不能跨进程(process)通信

posted @ 2016-07-30 08:04  shadowxs  阅读(67)  评论(0)    收藏  举报