EventBus

作者: 小赵不在 | 来源:发表于2020-05-06 21:03 被阅读0次
  • 依赖
    implementation 'org.greenrobot:eventbus:3.1.1'

一、使用的注册与解注册

  • 在Activity的onCreate()方法里去注册EventBus,在onDestory()方法里解除注册
  1. 注册
   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //注册
        EventBus.getDefault().register(this);
    }
  1. 解注册
 @Override
    protected void onDestroy() {
        super.onDestroy();
        EventBus.getDefault().unregister(this);
    }

二、事件

发送事件

EventBus.getDefault().post("事件");

处理事件

  //权限修饰符必须为public 
    @Subscribe(threadMode = ThreadMode.MAIN)
    public void getData(PersonBean personBean) {
        ...
    }

三、粘性事件

发送事件

EventBus.getDefault().postSticky("粘性事件");

处理事件

  //权限修饰符必须为public 
    @Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
    public void getMainData(String msg) {
        ...
    }

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

相关文章

网友评论

      本文标题:EventBus

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