android EventBus总结

2018-05-17  本文已影响0人  小婷婷tt

EventBus定义:

EventBus是一个基于观察者模式的事件发布/订阅框架,开发者通过极少的代码去实现多个模块之间的通信,而不需要以层层传递接口的形式去单独构建通信桥梁。从而降低因多重回调导致的模块间强耦合,同时避免产生大量内部类。拥有使用方便,性能高,接入成本低,支持多线程的优点。

如何实现Eventbus

1.定义事件(事件是POJO(plain old java object)类型,不需要什么特别的需求)

public class MessageEvent {

public final String message;

public MessageEvent(String message) {

  this.message = message;

}

2.准备订阅者(订阅者实现事件处理方法(也叫做订阅者方法),这个方法会在事件提交的时候被调用。这些是使用@Subscribe注解定义的。请注意EventBus 3的方法名字可以自由选择(不像EventBus 2中约束的那样)。)

// 当一个Message Event提交的时候这个方法会被调用

@Subscribe

public void onMessageEvent(MessageEvent event){

    Toast.makeText(getActivity(), event.message, Toast.LENGTH_SHORT).show();

}

// 当一个SomeOtherEvent被提交的时候这个方法被调用。

@Subscribe

public void handleSomethingElse(SomeOtherEvent event){

    doSomethingWith(event);

}

订阅者也需要在bus中注册和注销。只有在订阅者注册的时候,他们才会收到事件。在Android中,Activities和Fragments通常绑定他们的生命周期.

@Override

public void onStart() {

    super.onStart();

    EventBus.getDefault().register(this);

}

@Override

public void onStop() {

  EventBus.getDefault().unregister(this);

    super.onStop();

}

3.提交事件(在代码中任意位置提交事件。所有当前注册的匹配事件类型的订阅者都会收到事件。)

EventBus.getDefault().post(newMessageEvent("Hello everyone!"));

上一篇下一篇

猜你喜欢

热点阅读