以前我们要想在activity或fragment之间传递信息,我们会通过onActvityResult接收信息。但是这样有一个缺点,一个是代码量太大,重复率太高。二是有时候传递的数据需要经过几个界面的跳转。加入从A->B->C,C界面修改了某些信息,同时,想在A界面进行界面的刷新。那么通过onActvityResult的话很难操作。还有就是,加入从A->B,B传递信息给A界面。以往通过onActvityResult,我们需要在B界面关闭的时候,A界面才能拿到数据,再进行局部刷新,这样的话,A界面很可能会闪烁(数据刷新)。这样的话用户体验感就很差了。
首先,附上rxjava/rxandroid的链接,或者直接到github搜索查看最新版本链接
compile ‘io.reactivex:rxjava:1.1.0’
compile ‘io.reactivex:rxandroid:1.1.0’
具体怎么去使用,那么我们就直接给大家贴出demo的代码:
主要的代码其实就是RxBus的代码:
public class RxBus {
private static volatile RxBus defaultInstance;
private Subject<Object , Object> bus;
/**
- PublishSubject只会把在订阅发生的时间点之后来自原始Observable的数据发射给观察者
*/
public RxBus() {
bus = new SerializedSubject<>(PublishSubject.create());
}