快上车!EventBus使用

来源:互联网 发布:网络诗歌在哪里发布 编辑:程序博客网 时间:2024/05/02 02:34
首先在接收EventMessage的地方---注册事件

EventBus.getDefault().register(this);

然后这里就开始时刻监控有没有通知它启动。


在注解中定义接收处在发动EVEnt时在哪个线程中进行

@Subscribe(threadMode = ThreadMode.MAIN)public void onMoonEvent(MessageEvent messageEvent){    tv.setText(messageEvent.getMessage());}
在发出EventMessage的地方,POST
EventBus.getDefault().post(new MessageEvent("我就是信息"));
register-@subscribe-post三步。搞定一切通信。
可以在任意线程任意位置发送事件,直接调用EventBus的`post(Object)`方法,可以自己实例化EventBus对象,但一般使用默认的单例就好了:`EventBus.getDefault()`,根据post函数参数的类型,会自动调用订阅相应类型事件的函数。
所以!!!!!!当发过来一个消息的时候,EventBus怎么知道要调哪个函数呢,就看哪个函数传进去的参数是这个类的实例,哪个是就调哪个。那如果有两个是呢,那两个都会被调用!!!!
EventBus还支持发送黏性事件,就是在发送事件之后再订阅该事件也能收到该事件。

0 0
原创粉丝点击