github链接: EventBus
EventBus目前版本已到3.0.0, 由于项目之前集成的是2.4.0版本, 目前准备升级到3.0. 因为改动涉及的类较多, 做之前最好确保能撤回.
首先gradle:
compile 'de.greenrobot:eventbus:2.4.0'
升级成
compile 'org.greenrobot:eventbus:3.0.0'
3.0较之前的写法有点差别, 用到了注解. 主要注意两点:
一.可以自定义方法名, 在方法名前加对应注解;
二.添加索引(可选).
2.x执行线程对应3.0关系如下:
onEvent->注解ThreadMode.POSTING;
onEventMainThread->注解ThreadMode.MAIN
onEventBackground->注解ThreadMode.BACKGROUND
onEventAsync->注解ThreadMode.ASYNC
1.首先要做的就是, 在module上用快捷键 ctrl+shift+r 全局替换
import de.greenrobot.event.EventBus;
替换成 import org.greenrobot.eventbus.EventBus; 全部替换.
(这里也可以结合提交时的 Optimize imports 替换成注解需要的包.)
2.在module上用 ctrl+shift+f 全局搜索, 依次添加上面提到的4个方法注解.
例如对onEvent方法,
搜索"public void onEvent (" 添加
"@Subscribe(threadMode = ThreadMode.POSTING)"
记得在@前带上换行的回车. 我的做法是find出来一个个点过去, 点到一个直接ctrl+v, 鼠标双击+粘贴.
3.EventBus 3.0版本去掉了registerSticky, 换成细分到每个方法的配置注解sticky = true. 搜索".registerSticky(", registerSticky替换回register, 再在该类下的方法注解上添加sticky.
EventBus索引配置(可选):
可以参考这个 老司机教你 “飙” EventBus 3
主要是用map加速对配置方法的查找, 索引的类是apt在build时生成, 建议加上.