EventBus能在Fragment、Activity、Service、线程之间传递信息。 使用方便。
在app下的build.gradle中添加
compile 'org.greenrobot:eventbus:3.0.0'
先定义一个类,这个类之后就是你要发送的内容
public class EventPop {
//anything you wa
}
一般的使用步骤:
在需要接收信息的activity中或者fragment中注册
EventBus.getDefault().register(this);
在销毁当前activity或fragment时接触注册
EventBus.getDefault().unregister(this);
同时添加下列4个方法中的其中一个:
onEvent() 发送事件的是哪一个线程,该方法就在哪个线程运行
onEventMainThread()发送事件的不管是什么线程,该方法都在UI线程中
onEventBackgroundThread()发送事件在子线程,该方法就在这个子线程中运行;发送事件在UI线程,那么创建新子线程运行该方法
onEventAsync() 发送事件的不管是什么线程,都在新创的子线程中运行
不过注意的是,这些方法的上面都要加 @Subscribe 注释,不然就会报错。
例如:
@Subscribe
public void onMainThreadEvent(EventPop event) {
}
以上3个步骤都在你需要接收事件的类中添加。
然后我们在需要发送事件的地方添加发送事件代码:
EventBus.getDefault().post(new EventPop());
这样就能够通过EventBus传递信息了,真的很好用。