小编sha*_*_wx的帖子

RxJava作为事件总线,onNext在只有一个事件发布时被多次调用

我正在用RxJava实现一个事件总线(RxBus).

RxBus.java

public class RxBus {

    private static final String TAG = LogUtils.makeTag(RxBus.class);
    private static final RxBus INSTANCE = new RxBus();

    private final Subject<Object, Object> mBusSubject = new SerializedSubject<>(PublishSubject.create());

    public static RxBus getInstance() {
        return INSTANCE;
    }

    public <T> Subscription register(final Class<T> eventClass, Action1<T> onNext) {
        return mBusSubject
                .filter(new Func1<Object, Boolean>() {
                    @Override
                    public Boolean call(Object event) {
                        return event.getClass().equals(eventClass);
                    }
                })
//                .filter(event -> event.getClass().equals(eventClass))
                .map(new Func1<Object, T>() {
                    @Override
                    public T call(Object obj) {
                        return (T) obj;
                    } …
Run Code Online (Sandbox Code Playgroud)

android event-bus rx-java rx-android

4
推荐指数
1
解决办法
3021
查看次数

标签 统计

android ×1

event-bus ×1

rx-android ×1

rx-java ×1