EventBus使用
- 1.EventBus是有GreenDao公司提出的一个用于Android平台线程、进程间通信的库,使用方式简单粗暴,而且,库的大小不足50K,成本很低。
EventBus的地址:在这里
在这里我介绍一下EventBus 3.0的使用方式,目前搜索到的大部分资料都是针对EventBus 2.4的,在使用方式上,3.0版本比2.4版本更加自由。
首先,在build.gradle中添加
compile 'org.greenrobot:eventbus:3.0.0'
其次,之后,在你需要接受发送的消息的类的构造函数/onCreate方法里面添加
EventBus.getDefault().register(this);
当然,添加了注册,不要忘记反注册
EventBus.getDefault().unregister(this);
之后,在这个类里面书写一个任意的public方法,参数就是你要接受的消息类型,
public void helloEventBus(String message){}
在这个方法上面添加 @Subscribe 注解,同时这里可以添加threadMode参数决定helloEventBus方法执行在什么线程上面,这里的参数分为
参数 | 含义 |
---|---|
POSTING | 与消息发送者在同一线程(默认) |
MAIN | 执行在主线程 |
BACKGROUND | 执行在一个后台线程,会优先寻找发送者的线程,如果发送者执行在主线程,那么就新建一个后台线程 |
ASYNC | 执行在一个新的后台线程中 |
在这里,同样支持添加优先级 priority 属性来决定在同种ThreadMode下面的处理任务的顺序。
最后,在调用的地方使用
EventBus.getDefault().post(message);
来发送消息。
使用篇就到这里,之后会继续写原理分析。
----------------我是萌萌哒的分割线---------------------