EventBus源码分析和思考

EventBus使用方法

第一步:注册

EventBus.getDefault().register(Object subscriber);

第二步:绑定

@Subscribe(threadMode = ThreadMode.MAIN,priority =100,sticky =true)

public void test(String msg){

// 如果有一个地方用 EventBus 发送一个 String 对象,那么这个方法就会被执行

}

第三步:等待post推送

EventBus.getDefault().post(Object event);

第四步:反注册(解绑),防止内存溢出

EventBus.getDefault().unregister(Object subscriber);

整个流程就是上述这个,简单明了(EventBus.getDefault()很明显是一个单例)


单例模式

好的 整个使用流程如此简单,我们来看看具体的实现吧

方法:EventBus.getDefault().register(Object subscriber);做了什么准备呢?请看下面源码扒皮


数据整合已经完成,我们来看看EventBus.getDefault().post(Object event);又触发了那些操作吧



最后一步反注册 EventBus.getDefault().unregister(this);


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • EventBus地址:https://github.com/greenrobot/EventBus 一、event...
    君莫看阅读 2,016评论 2 11
  • 前言 成为一名优秀的Android开发,需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样~。 不知不...
    hpc阅读 657评论 0 0
  • 关于EventBusEventBus作为Android端的事件总线,为移动端页面间的事件传递提供了很大的便利。在使...
    Horps阅读 208评论 0 1
  • EventBus 是一种用于Android的事件发布-订阅总线,用于代替BroadcastReceiver,可以简...
    ImWiki阅读 194评论 0 1
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 6,106评论 0 4