全局事件总线控制方法、装置、电子设备及可读存储介质制造方法及图纸

技术编号:39291431 阅读:12 留言:0更新日期:2023-11-07 10:59
本申请涉及计算机技术领域,提供了一种全局事件总线控制方法、装置、电子设备及可读存储介质。该方法包括:监听应用程序的全局事件;监听到全局事件的产生,基于构建的全局事件总线中获取函数获取全局事件的事件名称及分类标签,分类标签包括粘性标签及非粘性标签,粘性标签表征全局事件为粘性事件,非粘性标签表征全局事件为非粘性事件;基于全局事件总线中接收函数确定全局事件的接收方及对应的生命周期;基于生命周期及分类标签控制接收方接收全局事件。本申请提供的全局事件总线控制方法,具有对全局事件的生命周期的感知能力,且涉及到的函数较少,无需在新增全局事件时添加自定义事件类,提升了全局事件总线的可维护性。性。性。

【技术实现步骤摘要】
全局事件总线控制方法、装置、电子设备及可读存储介质


[0001]本申请涉及计算机
,尤其涉及一种全局事件总线控制方法、装置、电子设备及可读存储介质。

技术介绍

[0002]现有技术中,应用程序中包括一个全局事件总线用以进行不同页面间的事件传递和接收,全局事件总线可以通过如EventBus及基于官方组件库中的LiveDataBus实现,其中,EventBus是一种开源框架的事件总线的实现方法,LiveDataBus是一种基于LiveData实现的类似EventBus的消息通信框架,LiveData是一种可观察监听的数据存储类。其中,全局事件总线基于LiveData的观察者模式来实现事件通知。
[0003]然而,在根据EventBus构建全局事件总线,并通过全局事件总线控制全局事件时,全局事件总线通过注解方法参数类型分发全局事件,因此每个全局事件存在一个对应的数据类,随着时间推移、应用程序迭代或系统升级,数据类会越来越多,从而导致应用程序对数据类的维护困难,并且当接收者过多或存在多个相同参数时难以区分传递全局事件的各消息流。
[0004]对于LiveDataBus的实现方法而言,在LiveData中不存在用作事件通知的方法,通过LiveDataBus构建全局事件总线控制全局事件时会产生“粘性事件”,粘性事件表现为新的接收者会收到上一条全局事件相关的数据信息的通知,现有技术根据LiveData构建的全局事件总线在遵从LiveData具有生命周期感知能力的设计思想的前提下无法处理“粘性事件”。

技术实现思路

[0005]有鉴于此,本申请实施例提供了一种全局事件总线控制方法、装置、电子设备及可读存储介质,以解决现有技术中应用程序对数据类的维护困难的问题。
[0006]本申请实施例的第一方面,提供了一种全局事件总线控制方法,包括:
[0007]监听应用程序的全局事件;
[0008]监听到全局事件的产生,基于构建的全局事件总线中获取函数获取全局事件的事件名称及分类标签,分类标签包括粘性标签及非粘性标签,粘性标签表征全局事件为粘性事件,非粘性标签表征全局事件为非粘性事件;
[0009]基于全局事件总线中接收函数确定全局事件的接收方及对应的生命周期;
[0010]基于生命周期及分类标签控制接收方接收全局事件。
[0011]本申请实施例的第二方面,提供了一种全局事件总线控制装置,包括:
[0012]监听模块,被配置为监听应用程序的全局事件;
[0013]获取模块,被配置为监听到全局事件的产生,基于构建的全局事件总线中获取函数获取全局事件的事件名称及分类标签,分类标签包括粘性标签及非粘性标签,粘性标签表征全局事件为粘性事件,非粘性标签表征全局事件为非粘性事件;
[0014]确定模块,被配置为基于全局事件总线中接收函数确定全局事件的接收方及对应的生命周期;
[0015]控制模块,被配置为基于生命周期及分类标签控制接收方接收全局事件。
[0016]本申请实施例的第三方面,提供了一种电子设备,包括存储器、处理器以及存储在存储器中并且可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
[0017]本申请实施例的第四方面,提供了一种可读存储介质,该可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
[0018]本申请实施例与现有技术相比存在的有益效果是:根据构建的全局事件总线对全局事件的生命周期及全局事件所在的应用程序的生命周期进行捆绑,从而实现全局事件总线中的全局性,且具有对全局事件的生命周期的感知能力,能够在应用程序退到后台或页面不可见时停止接收全局事件。此外,本申请实施例提供的全局事件总线控制方法涉及到的函数较少,无需在新增全局事件时添加自定义事件类,提升了全局事件总线的可维护性。
附图说明
[0019]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0020]图1是本申请实施例的一种应用场景的场景示意图;
[0021]图2是本申请实施例提供的一种全局事件总线控制方法的流程示意图;
[0022]图3是本申请实施例提供的一种构建全局事件总线的结构示意图;
[0023]图4是本申请实施例提供的一种全局事件总线控制装置的示意图;
[0024]图5是本申请实施例提供的电子设备的示意图。
具体实施方式
[0025]以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
[0026]下面将结合附图详细说明根据本申请实施例的一种显示控制方法和装置。
[0027]图1是本申请实施例的一种应用场景的场景示意图。该应用场景可以包括第一终端设备101、第二终端设备102和第三终端设备103、服务器104以及网络105。
[0028]第一终端设备101、第二终端设备102和第三终端设备103可以是硬件,也可以是软件。当第一终端设备101、第二终端设备102和第三终端设备103为硬件时,其可以是具有显示屏且支持与服务器104通信的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等;当第一终端设备101、第二终端设备102和第三终端设备103为软件时,其可以安装在如上所述的电子设备中。第一终端设备101、第二终端设备102和第三终端设备103可以实现为多个软件或软件模块,也可以实现为单个软件或软件模块,本申请
实施例对此不作限制。进一步地,第一终端设备101、第二终端设备102和第三终端设备103上可以安装有各种应用,例如数据处理应用、即时通信工具、社交平台软件、搜索类应用、购物类应用等。
[0029]服务器104可以是提供各种服务的服务器,例如,对与其建立通信连接的终端设备发送的请求进行接收的后台服务器,该后台服务器可以对终端设备发送的请求进行接收和分析等处理,并生成处理结果。服务器104可以是一台服务器,也可以是由若干台服务器组成的服务器集群,或者还可以是一个云计算服务中心,本申请实施例对此不作限制。
[0030]需要说明的是,服务器104可以是硬件,也可以是软件。当服务器104为硬件时,其可以是为第一终端设备101、第二终端设备102和第三终端设备103提供各种服务的各种电子设备。当服务器104为软件时,其可以是为第一终端设备101、第二终端设备102和第三终端设备103提供各种服务的多个软件或软件模块,也可以是为第一终端设备101、第本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种全局事件总线控制方法,其特征在于,包括:监听应用程序的全局事件;监听到所述全局事件的产生,基于构建的全局事件总线中获取函数获取所述全局事件的事件名称及分类标签,所述分类标签包括粘性标签及非粘性标签,所述粘性标签表征所述全局事件为粘性事件,所述非粘性标签表征所述全局事件为非粘性事件;基于所述全局事件总线中接收函数确定所述全局事件的接收方及对应的生命周期;基于所述生命周期及所述分类标签控制所述接收方接收所述全局事件。2.根据权利要求1所述的方法,其特征在于,基于构建的全局事件总线中获取函数获取所述全局事件的事件名称及分类标签之后,还包括:基于所述事件名称及所述分类标签,判断对应的事件集合中是否存在所述全局事件,所述事件集合包括粘性事件集合和非粘性事件集合,所述粘性事件集合用于保存所有粘性事件,所述非粘性事件集合用于保存所有非粘性事件;若不存在,获取所述全局事件的数据信息,按照所述数据信息在所述事件集合中创建所述全局事件;若存在,在对应的所述事件集合中调用所述全局事件。3.根据权利要求1所述的方法,其特征在于,基于所述全局事件总线中接收函数确定所述全局事件的接收方及对应的生命周期之前,还包括:基于所述分类标签调用所述全局事件的数据流,并基于发送函数发送所述全局事件的数据信息;基于所述分类标签调用所述全局事件的数据流,并基于发送函数发送所述全局事件的数据信息包括:当所述分类标签为粘性标签,基于所述发送函数、所述粘性事件集合及粘性数据流发送所述全局事件的数据信息;当所述分类标签为非粘性标签,基于所述发送函数、所述非粘性事件集合及非粘性数据流发送所述全局事件的数据信息。4.根据权利要求3所述的方法,其特征在于,所述发送函数还包括延时时间,基于发送函数发送所述全局事件的数据信息包括:基于所述数据信息判断所述全局事件是否存在延时时间;若存在,基于所述延时时间通过全局生命周期管理类函数获取对应的延时事件数据类,基于所述延时事件数据类调用所述发送函数发送所述数据信息;若不存在,将所述延时时间设置为无,基于所述延时事件数据类调用所述发送函数发送所述数据信息。5.根据权利要求1所述的方法,其特征在于,基于所述生命周...

【专利技术属性】
技术研发人员:张鑫修怀忠
申请(专利权)人:重庆赛力斯新能源汽车设计院有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1