美文网首页
android EventBus总结

android EventBus总结

作者: 小婷婷tt | 来源:发表于2018-05-17 18:41 被阅读0次

    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!"));

    相关文章

      网友评论

          本文标题:android EventBus总结

          本文链接:https://www.haomeiwen.com/subject/qkdidftx.html