
eventbus源码
氦客
Stay hungry,Stay foolish
展开
-
EventBus源码解析01-获取实例
通常,我们会通过getDefault()来获取EventBus的实例。EventBus.getDefault() 我们来查看他内部的实现。 public static EventBus getDefault() { if (defaultInstance == null) { synchronized (EventBus.class) { i原创 2017-07-28 06:42:44 · 486 阅读 · 0 评论 -
EventBus源码解析02-订阅者注册
接着,我们来看EventBus的订阅过程 public void register(Object subscriber) { Class<?> subscriberClass = subscriber.getClass(); List<SubscriberMethod> subscriberMethods = subscriberMethodFinder.findSubscribe原创 2017-08-25 07:21:16 · 397 阅读 · 0 评论 -
EventBus源码解析03-事件的发送
接着来看EventBus的事件发送过程 EventBus.getDefault().post(message); 通过post()可以对事件进行发送。 public void post(Object event) { //通过currentPostingThreadState这个ThreadLocal创建PostingThreadState,解决线程并发的问题 Posting原创 2017-08-26 08:54:41 · 563 阅读 · 0 评论 -
EventBus源码解析04-取消订阅
取消订阅会调用unregister() public synchronized void unregister(Object subscriber) { //根据subscriber获取eventType集合 List<Class<?>> subscribedTypes = typesBySubscriber.get(subscriber); if (subscribedT原创 2017-08-27 09:04:22 · 694 阅读 · 0 评论 -
RxJava源码解析02-订阅过程
RxJava源码解析-订阅过程以最简单的调用过程为例Observable.create(new Observable.OnSubscribe<String>() { @Override public void call(Subscriber<? super String> subscriber) { subscriber.onNext("hello");原创 2017-09-01 07:52:14 · 411 阅读 · 0 评论