美文网首页Android开发经验谈Android开发Android技术知识
EventBus 入门和粘性事件(Sticky Events)

EventBus 入门和粘性事件(Sticky Events)

作者: NullPoint3Exce | 来源:发表于2019-02-13 17:39 被阅读13次

    1.简介

    EventBus is a publish/subscribe event bus for Android and Java.
    eventbus 是用于android和java 发布和订阅的事件总线。

    优点:

    • 简化组件之间的通信
    • 体积小
    • 将事件的发送者和接受者分离
    • 在activity fragment 线程之间性能优良
    • 避免复杂且容易出错的依赖关系和生命周期问题
    • 代码简单方便
    EventBus-Publish-Subscribe.png

    2.依赖

    implementation 'org.greenrobot:eventbus:3.1.1'
    
    

    3.定义事件

    public static class MessageEvent { /* Additional fields if needed */ }
    

    4.(声明和注解事件接收方法)Declare and annotate your subscribing method,注意方法的名称和event名称要对应。MessageEvent-->onMessageEvent()

    @Subscribe(threadMode = ThreadMode.MAIN)  
    public void onMessageEvent(MessageEvent event) {/* Do something */};
    

    5.注册和取消注册

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

    6.发送事件

     EventBus.getDefault().post(new MessageEvent());
    
     EventBus.getDefault().post(new MessageEvent(“要传送的内容”));
    

    7.粘性事件(Sticky Events):就是在发送事件之后再订阅该事件也能收到该事件

    EventBus.getDefault().postSticky(new MessageEvent("Hello everyone!"));
    
    @Subscribe(sticky = true, threadMode = ThreadMode.MAIN)// sticky =true,可以接收粘性事件。
    public void onEvent(MessageEvent event) {   
        textField.setText(event.message);
    }
    

    相关文章

      网友评论

        本文标题:EventBus 入门和粘性事件(Sticky Events)

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