The present invention provides a method and a system for distributing events by event bus, wherein the method comprises the following steps: event publish events; release event bus analysis event, obtain the event parameters, and obtain the pre classification of event set function should be good, according to the parameters of the event, the event handler for all the event includes event processing in the collection and processing functions, each event handler corresponds to an event subscriber; the execution of the event handling function set in event processing function, the event to event subscribers. The invention provides a set of perfect event communication bus, can well distribute the corresponding event request, the use of simple, clear logic, so the developer can more attention to business logic, do not need to cost the corresponding time distribution of events.
【技术实现步骤摘要】
本专利技术涉及一种Android系统的通信领域,尤其涉及一种通过事件总线分发事件的方法及系统。
技术介绍
在Android的应用程序中通常会有多个界面和多个功能模块。在处理界面或者功能模块之间通信问题的方法在Android中通常有下面几种方案。其一是通过Handler来进行通信多线程之间的通信,这种使用起来还算比较方便,但是容易造成内存泄漏等问题。其次Handler如果在多个界面传递和使用会比较复杂,大大增加了模块之间的耦合度。使得程序变得更加复杂,后期非常不好维护。其二是通过广播来进行组件之间的通信,广播在Android系统中是一个比较常见的技术,当时广播有一个最大的缺陷是时效性非常差。广播发出后是由系统进行转发的,系统所有的广播都是走的同一个通道,当广播数量比较多的时候很容易造成阻塞,导致广播接收速度变慢,严重时还会造成广播信号的丢失,所以该方法也不是一套很好的组件通信的方案。其三是通过接口来实现相互之间的信息交流,但是接口有其局限性,不容易扩展。一旦接口定义好了后期两者的通信就无法进行变更,如果需要变更就需要变更接口,但是接口一旦进行变更其相应的实现逻辑等都需要相应的变化。这对于扩展性而言是非常不利的。所以这个方案也是不适合作为组件之间通信的优选方案。可见,上述Android系统提供的所有的方法都有其局限性和缺陷。
技术实现思路
本专利技术要解决的技术问题在于针对现有技术中事件分发处理速度慢或者使用不便的缺陷,提供一种使用简单,逻辑清晰,使得开发者能够更多的去关注业务逻辑,不需要再为事件的分发耗费相应的时间的通过事件总线分发事件的方法及系统。本专利技术 ...
【技术保护点】
一种通过事件总线分发事件的方法,其特征在于,包括以下步骤:事件发布者发布事件;事件总线分析所发布的事件,获取事件参数,并根据该事件参数获取预先分类好的、对应该事件的事件处理函数集合,该事件处理函数集合中包含处理该事件的所有事件处理函数,且每个事件处理函数对应一个事件订阅者;执行该事件处理函数集合中的事件处理函数,将事件分发给事件订阅者。
【技术特征摘要】
1.一种通过事件总线分发事件的方法,其特征在于,包括以下步骤:事件发布者发布事件;事件总线分析所发布的事件,获取事件参数,并根据该事件参数获取预先分类好的、对应该事件的事件处理函数集合,该事件处理函数集合中包含处理该事件的所有事件处理函数,且每个事件处理函数对应一个事件订阅者;执行该事件处理函数集合中的事件处理函数,将事件分发给事件订阅者。2.根据权利要求1所述的方法,其特征在于,所述事件发布者发布的各个事件均被汇总到事件总线。3.根据权利要求1所述的方法,其特征在于,该方法还包括步骤:事件订阅者预先进行注册。4.根据权利要求3所述的方法,其特征在于,还包括步骤:根据事件订阅者注册的信息对事件进行分类,得到各事件的事件处理函数集合。5.根据权利要求3所述的方法,其特征在于,步骤“根据注册的信息对事件进行分类得到各事件的事件处理函数集合”具体为:事件总线根据注册信息获取订阅事件的事件处理函数,并生成该事件订阅者的事件方法集合listEventMethod,该事件方法集合listEventMethod中包含该事件订阅者所有订阅事件的事件处理函数;所有事件订阅者的事件方法集合汇总为总事件订阅集合allListEventMethod;遍历总事件订阅集合allListEventMethod,根据事件类型进行分类,得到各个事件的事件处理函数集合。6.根据权利要求5所述的方法,其特征在于,步骤“遍历总事件订阅集合allListEventMethod,根据事件类型进行分类,得到各个事件的事件处理函数集合”具体为:使用for循环语句遍历总事件订阅集合allListEventMethod中的每一个元素,每个元素均表示事件的处理函数,每次获取其中一个元素;通过获取的每一个元素得到其中所包含的事件参数信息;根据事...
【专利技术属性】
技术研发人员:张磊,
申请(专利权)人:武汉斗鱼网络科技有限公司,
类型:发明
国别省市:湖北;42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。