下载此文档

eventbus源码分析 刘永雷(雷惊风).doc


文档分类:医学/心理学 | 页数:约25页 举报非法文档有奖
1/25
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/25 下载此文档
文档列表 文档介绍
eventbus源码分析_刘永雷(雷惊风)EventBus源码分析一(简单介绍。EventBus定义:是一个发布/订阅的开源框架,要用于事件的发布和订阅,一般传递事件的方式主要有Handler、BroadCastReceiver、Interface回调等,EventBus的好处主要在于代码简单,使用方便,充分了降低订阅者与发布者的耦合度,所有的事件都交由EventBus这个事件总线来管理。二(涉及到的模块。想通过Eventbus完成事件传递,至少要涉及3个部分,订阅者、发布者、事件,下边逐个简单介绍。。订阅一个或多个事件对象,当发布者发布对应事件后,EventBus会查找所有订阅了本事件的所有订阅者,并执行订阅者操作类中相应的OnEvent*(Object)方法,完成对应操作。订阅方法:().register(this);单例模式。。顾名思义,就是发布某个事件的对象,当发布者完成特定任务后,发布事件,事件总线EventBus通过事件获取对应的订阅者列表,循环执行订阅者中对应的OnEvent*(Object)事件响应函数。发布事件方法:().post(EventOb);。就是一个对象。可以携带一些处理后的信息。分为普通事件和Sticky事件,相对于一般事件,Sticky事件不同之处在于,当事件发布后,再有订阅者开始订阅该类型事件,依然能收到该类型事件最近一个Sticky事件。三(用到的方法及作用。().register(this);注册当前类到事件总线EventBus。This参数为当前activity的上下文对象。写在订阅者对象中。().post(newEventOB());发布一个EventOB事件到事件总线EventBus中,EventOB为发布的事件类型,也就是一个对象。(){};当发布者发布事件后,EventBus找到订阅者后通过订阅者的ThreadMode名称类型在相应线程执行内部代码。ThreadMode共四种:,PostThread:直接调用订阅者的事件响应函数,,MainThread并且发布线程就是主线程,则直接调用订阅者的事件响应函数,否则通过主线程的Handler发送消息在主线程中处理——调用订阅者的事件响应函数;,BackgroundThread并且发布线程是主线程,则启动异步线程去处理,否则直接直接调用订阅者的事件响应函数;,Async,则启动异步线程去处理——调用订阅者的事件响应函数。().unRegister(this);取消当前类订阅。四(源码分析。:订阅流程图publicvoidregister(Objectsubscriber){register(subscriber,false,0);}注释:以上调用三个参数注册方法subscriber为调用者acticity上下文对象;再看三参数方法:privatesynchronizedvoidregister(Objectsubscriber,booleansticky,intpriority){List<SubscriberMethod>subscriberMethods=(());for(SubscriberMethodsubscriberMethod:subscriberMethods){subscribe(subscriber,subscriberMethod,sticky,priority);}}注释:看参数subscriber:上下文对象;Sticky:是否粘性(当再次有新订阅者,老订阅者能收到处理信息);priority:优先级设置,优先级越高,首先执行。subscriberMethodFinder订阅者响应函数信息存储和查找类。(())方法:List<SubscriberMethod>findSubscriberMethods(Class<?>subscriberClass){Stringkey=();List<SubscriberMethod>subscriberMethods;synch

eventbus源码分析 刘永雷(雷惊风) 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数25
  • 收藏数0 收藏
  • 顶次数0
  • 上传人iris028
  • 文件大小100 KB
  • 时间2019-12-06