【基础笔记】EventBus的基本使用

2019-11-05  本文已影响0人  究极无敌棒棒糖

什么是EventBus?

EventBus是一个发布/订阅模式的消息总线库

它简化了应用程序内各组件间、组件与后台线程间的通信,解耦了事件的发送者和接收者,避免了复杂的、易于出错的依赖及生命周期问题,可以使我们的代码更加简洁、健壮。


EventBus的基本使用

implementation 'org.greenrobot:eventbus:3.0.0'
public class MessageEvent {
    public final String message;

  public MessageEvent(String message) {
    this.message = message;
}
}
@Subscribe(threadMode = ThreadMode.MAIN)  
public void onMessageEvent(MessageEvent messageevent) {...};
@Override
protected void onCreate(Bundle savedInstanceState) {           
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
     EventBus.getDefault().register(this);//注册EventBus
} 

@Override
protected void onDestroy() {
    super.onDestroy();
    EventBus.getDefault().unregister(this);//注销EventBus
}
EventBus.getDefault().post(messageEvent);

EventBus的粘性事件

所谓粘性事件,就是在发送事件之后再订阅该事件也能收到该事件。请注意这里与普通事件的区别,普通事件是先注册在绑定。

EventBus.getDefault().postSticky(messageEvent);
@Subscribe(threadMode = ThreadMode.MAIN,sticky = true)
public void onMessageEvent(MessageEvent messageevent){...};
上一篇 下一篇

猜你喜欢

热点阅读