EventBus的使用记录

作者: LeoYe168 | 来源:发表于2018-04-10 14:49 被阅读52次

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

    初始化

    EventBus.getDefault().build.....
    

    获得实例

    EventBus.getDefault()
    

    注册和反注册同广播

    @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);
    
    }
    

    发送

    EventBus.getDefault().post("hello");
    

    接收

    @Subscribe(threadMode = ThreadMode.MAIN)
    
    public void helloEventBus(String message){
    
        mText.setText(message);//message == hello
    
    }
    

    线程的限制

    1.ThreadMode: POSTING 和发送者在同一个线程

    2.ThreadMode: MAIN

    3.ThreadMode: BACKGROUND background

    4.ThreadMode: ASYNC 一个新的线程

    扩展

    Sticky Events 发送在监听之前使用

    http://greenrobot.org/eventbus/documentation/

    相关文章

      网友评论

        本文标题:EventBus的使用记录

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