RxBus库简介
- GitHub地址 https://github.com/AndroidKnife/RxBus
- 目前的版本是1.0.5
发送事件方法:
RxBus.get().post(Constants.EventType.TAG_STORY, this);
接收事件方法:
注册
RxBus.get().register(this)
接收方法
@Subscribe( thread = EventThread.IMMEDIATE, tags = {@Tag(Constants.EventType.TAG_STORY)} ) public void heardFromMouse(String mouseWar) { Timber.e("Just heard from mouse: " + mouseWar + " from " + Thread.currentThread()); }
用@Subscribe声明,包含两个参数thread用于指定接收线程(即RxJava中observeOn()方法指定的线程),有,tags是个数组,用于标示
public static Scheduler getScheduler(EventThread thread) { Scheduler scheduler; switch (thread) { case MAIN_THREAD: scheduler = AndroidSchedulers.mainThread(); break; case NEW_THREAD: scheduler = Schedulers.newThread(); break; case IO: scheduler = Schedulers.io(); break; case COMPUTATION: scheduler = Schedulers.computation(); break; case TRAMPOLINE: scheduler = Schedulers.trampoline(); break; case IMMEDIATE: scheduler = Schedulers.immediate(); break; case EXECUTOR: scheduler = Schedulers.from(ThreadHandler.DEFAULT.getExecutor()); break; case HANDLER: scheduler = HandlerScheduler.from(ThreadHandler.DEFAULT.getHandler()); break; default: scheduler = AndroidSchedulers.mainThread(); break; } return scheduler; }
解注册
RxBus.get().unregister(this);
- 基本流程