EventBus

  • 添加依赖implementation 'org.greenrobot:eventbus:3.1.1'

1. 注册

  • 注册事件
@Override
protected void onCreate(Bundle savedInstanceState) {           
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
     EventBus.getDefault().register(this);
} 
  • 解除注册
@Override
protected void onDestroy() {
    super.onDestroy();
    EventBus.getDefault().unregister(this);
}

2. 事件

  • 发送事件
EventBus.getDefault().post("发送事件");
  • 处理事件
//权限修饰符必须为public 
@Subscribe(threadMode = ThreadMode.MAIN)
public void XXX(MessageEvent messageEvent) {
    ...
}

3. 粘性事件

  • 粘性事件的发布:
EventBus.getDefault().postSticky("粘性事件");
  • 粘性事件的接收
//权限修饰符必须为public 
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
    public void receiveSoundRecongnizedmsg(String insType) {
       
    }

4. 总结

EventBus能够简化各组件间的通信,让我们的代码书写变得简单,能有效的分离事件发送方和接收方(也就是解耦的意思),能避免复杂和容易出错的依赖性和生命周期问题。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。