CN110018910A - 事件总线的注册模板实现方法、存储介质、设备及系统 - Google Patents

事件总线的注册模板实现方法、存储介质、设备及系统 Download PDF

Info

Publication number
CN110018910A
CN110018910A CN201810016185.3A CN201810016185A CN110018910A CN 110018910 A CN110018910 A CN 110018910A CN 201810016185 A CN201810016185 A CN 201810016185A CN 110018910 A CN110018910 A CN 110018910A
Authority
CN
China
Prior art keywords
activity
user
event
template
appcompatactivity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810016185.3A
Other languages
English (en)
Other versions
CN110018910B (zh
Inventor
张磊
陈少杰
张文明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201810016185.3A priority Critical patent/CN110018910B/zh
Publication of CN110018910A publication Critical patent/CN110018910A/zh
Application granted granted Critical
Publication of CN110018910B publication Critical patent/CN110018910B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种事件总线的注册模板实现方法、存储介质、设备及系统,涉及应用开发领域,该方法包括:在用户Activity和Android系统AppCompatActivity之间增加一层模板Activity,且使用户Activity继承于模板Activity,模板Activity继承于Android系统AppCompatActivity;在模板Activity中复写Android系统AppCompatActivity中的onCreate方法实现用户页面在事件总线的注册,以及onDestory方法实现用户页面在事件总线的反注册;在模板Activity中写入获得实例方法以将Android系统AppCompatActivity暴露给用户Activity,实现用户Activity的事件发送,以及在用户Activity中复写事件回调函数以实现用户Activity的事件接收。本发明能够有效降低冗余代码。

Description

事件总线的注册模板实现方法、存储介质、设备及系统
技术领域
本发明涉及应用开发领域,具体涉及一种事件总线的注册模板实现方法、存储介质、设备及系统。
背景技术
在Android端应用的开发过程中,使用了事件总线来对应用的各个页面进行消息的传递。使用了事件总线的页面需要对事件总线进行注册,且页面在被销毁时需将该页面向事件总线进行反注册。
在应用的实际开发中,通常一个应用的工作是由多个页面共同协同工作来完成,随着页面数量的增多,页面在事件总线的注册和反注册的业务代码也随之增多,从而导致多个页面存在大量冗余代码的问题,影响应用的稳定运行。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种事件总线的注册模板实现方法,能够有效降低冗余代码。
为达到以上目的,本发明采取的技术方案是,包括:
在用户Activity和Android系统AppCompatActivity之间增加一层模板Activity,且使用户Activity继承于模板Activity,模板Activity继承于Android系统AppCompatActivity;
在模板Activity中复写Android系统AppCompatActivity中的onCreate方法实现用户页面在事件总线的注册,以及onDestory方法实现用户页面在事件总线的反注册;
在模板Activity中写入获得实例方法以将Android系统AppCompatActivity暴露给用户Activity,实现用户Activity的事件发送,以及在用户Activity中复写事件回调函数以实现用户Activity的事件接收。
在上述技术方案的基础上,所述用户Activity对应用户页面,所述用户页面为应用展现给用户的视图页面。
在上述技术方案的基础上,所述用户Activity继承于模板Activity,则用户Activity继承模板Activity中复写的onCreate方法和onDestory方法以实现用户页面在事件总线的注册和反注册。
在上述技术方案的基础上,在模板Activity中写入获得实例方法将Android系统AppCompatActivity暴露给用户Activity,用户Activity获取事件发送器进行事件发送。
在上述技术方案的基础上,模板Activity将Android系统AppCompatActivity发送的事件信息直接透传给用户Activity,用户Activity中复写的事件回调函数对事件信息进行处理,实现用户Activity的事件接收。
本发明还提供一种存储介质,该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的方法。
本发明还提供一种事件总线的注册模板实现设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述所述的方法。
本发明还提供一种事件总线的注册模板实现系统,包括:
创建模块,其用于在用户Activity和Android系统AppCompatActivity之间增加一层模板Activity,且使用户Activity继承于模板Activity,模板Activity继承于Android系统AppCompatActivity;
注册执行模块,其用于在模板Activity中复写Android系统AppCompatActivity中的onCreate方法实现用户页面在事件总线的注册,以及onDestory方法实现用户页面在事件总线的反注册;
发送接收执行模块,其用于在模板Activity中写入获得实例方法以将Android系统AppCompatActivity暴露给用户Activity,实现用户Activity的事件发送,以及在用户Activity中复写事件回调函数以实现用户Activity的事件接收。
在上述技术方案的基础上,所述用户Activity对应用户页面,所述用户页面为应用展现给用户的视图页面。
在上述技术方案的基础上,所述用户Activity继承于模板Activity,则用户Activity继承模板Activity中复写的onCreate方法和onDestory方法以实现用户页面在事件总线的注册和反注册。
与现有技术相比,本发明的优点在于:在用户Activity和Android系统AppCompatActivity之间增加模板Activity,并在模板Activity中复写onCreate方法和onDestory方法实现用户页面在事件总线的注册和反注册,使得在用户页面中可直接向事件总线发送消息和接收消息,较大程度的降低冗余代码;同时在模板Activity中写入获得实例方法实现用户Activity的事件发送,以及在用户Activity中复写事件回调函数以实现用户Activity的事件接收,用户界面快速获取到事件总线的发送器和事件接收器,提高各用户页面之间的交互效率。
附图说明
图1为本发明一种事件总线的注册模板实现方法的流程图;
图2为本发明一种事件总线的注册模板实现设备的结构示意图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
参见图1所示,本发明实施例提供一种事件总线的注册模板实现方法,适用于Android应用的页面开发。Android中各个组件间的相互通信较为麻烦,通过事件总线能够便捷实现各个组件间的通信。本发明实施例的事件总线的注册模板实现方法具体包括:
S1:在用户Activity和Android系统AppCompatActivity之间增加一层模板Activity,且使用户Activity继承于模板Activity,模板Activity继承于Android系统AppCompatActivity。AppCompatActivity是support.v7包里面用来替代Activity的Activity组件。Activity是Android系统中的四大常见组件之一,Android系统应用中的视图页面承载通常是一个Activity,即Android中的一个用户页面对应一个Activity,即用户Activity对应用户页面,用户页面为应用展现给用户的视图页面。通常情况下,实现用户页面需要编写一个用户Activity,并且让编写的用户Activity继承系统的AppCompatActivity,即继承Android系统的AppCompatActivity,这样用户页面才具备了在Android上显示元素的功能,且关于用户页面的所有业务逻辑全部都是在用户Activity中来进行实现的。
本发明实施例中,用户Activity继承于模板Activity,模板Activity继承于Android系统AppCompatActivity,根据面向对象语言的继承特性,用户Activity便具备了模板Activity和Android系统AppCompatActivity的功能。
S2:在模板Activity中复写Android系统AppCompatActivity中的onCreate方法实现用户页面在事件总线的注册,以及onDestory方法实现用户页面在事件总线的反注册。用户Activity继承于模板Activity,则用户Activity继承模板Activity中复写的onCreate方法和onDestory方法以实现用户页面在事件总线的注册和反注册。
onCreate方法是用户页面被启动的时候被系统回调的方法。onDestory方法是用户页面被销毁的时候被系统回调的方法。具体的,在onCreate方法中通过调用EBus(集成总线平台)中的register函数将用户页面注册到事件总线中,在onDestory方法中通过调用EBus中的unregister函数将用户页面反注册到事件总线中,从而便能够在模板Activity中通过onCreate方法和onDestory方法来达到用户页面自动注册时间总线和用户页面自动反注册事件总线的目的。
S3:在模板Activity中写入获得实例方法以将Android系统AppCompatActivity暴露给用户Activity,实现用户Activity的事件发送,以及在用户Activity中复写事件回调函数以实现用户Activity的事件接收。即实现模板Activity提供事件发送器和事件接收器给上层的用户Activity。
在模板Activity中写入获得实例方法将Android系统AppCompatActivity暴露给用户Activity,用户Activity获取事件发送器进行事件发送。具体的,在模板Activity中写入一个public(公开的)方法,即写入获得实例方法,获得实例方法通过getEbusInstance函数实现,在getEbusInstance函数中通过返回EBus事件总线的实例对象ebus来将事件总线暴露给用户Activity,这样用户Activity就无需通过复杂的业务逻辑去获取事件发送器了,仅仅调用在模板Activity中封装好的getEbusInstance函数便能获取到发送器实例,从而极大地提高用户Activity获取事件发送器的效率,提高应用开发效率。
模板Activity将Android系统AppCompatActivity发送的事件信息直接透传给用户Activity,用户Activity中复写的事件回调函数对事件信息进行处理,实现用户Activity的事件接收,即模板Activity中的事件回调函数onEventReceive对事件信息不做任何操作,整个事件接收过程中模板Activity仅仅是对消息进行透传处理。
本发明实施例事件总线的注册模板实现方法的原理在于,在用户Activity和Android系统AppCompatActivity之间增加继承于Android系统AppCompatActivity的模板Activity,通过在模板Activity中复写onCreate方法和onDestory方法实现用户页面在事件总线的注册和反注册,从而开发者无需在用户页面中关注事件总线的注册和反注册逻辑,在用户页面中可直接向事件总线发送消息和接收消息,较大程度的降低冗余代码,从一定程度上也能够避免因忘记编写反注册逻辑而导致用户页面的内存泄漏问题;同时在模板Activity中写入获得实例方法将Android系统AppCompatActivity暴露给用户Activity,实现用户Activity的事件发送,以及在用户Activity中复写事件回调函数以实现用户Activity的事件接收,能够快速获取到事件总线的发送器和事件接收器,提高各用户页面之间的交互效率。
另外,对应上述事件总线的注册模板实现方法,本发明还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述各实施例所述的事件总线的注册模板实现方法的步骤。需要说明的是,所述存储介质包括U盘、移动硬盘、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、磁碟或者光盘等各种可以存储程序代码的介质。
参见图2所示,对应上述事件总线的注册模板实现方法,本发明还提供一种事件总线的注册模板实现设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,处理器执行计算机程序时实现上述各实施例的事件总线的注册模板实现方法。
本发明实施例还提供一种基于上述事件总线的注册模板实现方法的事件总线的注册模板实现系统,包括创建模块、注册执行模块和发送接收执行模块。
创建模块用于在用户Activity和Android系统AppCompatActivity之间增加一层模板Activity,且使用户Activity继承于模板Activity,模板Activity继承于Android系统AppCompatActivity;注册执行模块用于在模板Activity中复写Android系统AppCompatActivity中的onCreate方法实现用户页面在事件总线的注册,以及onDestory方法实现用户页面在事件总线的反注册;发送接收执行模块用于在模板Activity中写入获得实例方法以将Android系统AppCompatActivity暴露给用户Activity,实现用户Activity的事件发送,以及在用户Activity中复写事件回调函数以实现用户Activity的事件接收。
用户Activity对应用户页面,用户页面为应用展现给用户的视图页面。用户Activity继承于模板Activity,则用户Activity继承模板Activity中复写的onCreate方法和onDestory方法以实现用户页面在事件总线的注册和反注册。
本发明实施例的事件总线的注册模板实现系统的原理在于,创建模块在用户Activity和Android系统AppCompatActivity之间增加继承于Android系统AppCompatActivity的模板Activity,通过在模板Activity中复写onCreate方法和onDestory方法实现用户页面在事件总线的注册和反注册,从而开发者无需在用户页面中关注事件总线的注册和反注册逻辑,在用户页面中可直接向事件总线发送消息和接收消息,较大程度的降低冗余代码;同时在模板Activity中写入获得实例方法将Android系统AppCompatActivity暴露给用户Activity,实现用户Activity的事件发送,以及在用户Activity中复写事件回调函数以实现用户Activity的事件接收,能够快速获取事件发送器和事件接收器,提高各用户页面之间的交互效率。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (10)

1.一种事件总线的注册模板实现方法,适用于Android应用的页面开发,其特征在于,包括:
在用户Activity和Android系统AppCompatActivity之间增加一层模板Activity,且使用户Activity继承于模板Activity,模板Activity继承于Android系统AppCompatActivity;
在模板Activity中复写Android系统AppCompatActivity中的onCreate方法实现用户页面在事件总线的注册,以及onDestory方法实现用户页面在事件总线的反注册;
在模板Activity中写入获得实例方法以将Android系统AppCompatActivity暴露给用户Activity,实现用户Activity的事件发送,以及在用户Activity中复写事件回调函数以实现用户Activity的事件接收。
2.如权利要求1所述的一种事件总线的注册模板实现方法,其特征在于:所述用户Activity对应用户页面,所述用户页面为应用展现给用户的视图页面。
3.如权利要求2所述的一种事件总线的注册模板实现方法,其特征在于:所述用户Activity继承于模板Activity,则用户Activity继承模板Activity中复写的onCreate方法和onDestory方法以实现用户页面在事件总线的注册和反注册。
4.如权利要求1所述的一种事件总线的注册模板实现方法,其特征在于:在模板Activity中写入获得实例方法将Android系统AppCompatActivity暴露给用户Activity,用户Activity获取事件发送器进行事件发送。
5.如权利要求1所述的一种事件总线的注册模板实现方法,其特征在于:模板Activity将Android系统AppCompatActivity发送的事件信息直接透传给用户Activity,用户Activity中复写的事件回调函数对事件信息进行处理,实现用户Activity的事件接收。
6.一种存储介质,该存储介质上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至5任一项所述的方法。
7.一种事件总线的注册模板实现设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现权利要求1至5任一项所述的方法。
8.一种事件总线的注册模板实现系统,其特征在于,包括:
创建模块,其用于在用户Activity和Android系统AppCompatActivity之间增加一层模板Activity,且使用户Activity继承于模板Activity,模板Activity继承于Android系统AppCompatActivity;
注册执行模块,其用于在模板Activity中复写Android系统AppCompatActivity中的onCreate方法实现用户页面在事件总线的注册,以及onDestory方法实现用户页面在事件总线的反注册;
发送接收执行模块,其用于在模板Activity中写入获得实例方法以将Android系统AppCompatActivity暴露给用户Activity,实现用户Activity的事件发送,以及在用户Activity中复写事件回调函数以实现用户Activity的事件接收。
9.如权利要求8所述的一种事件总线的注册模板实现系统,其特征在于:所述用户Activity对应用户页面,所述用户页面为应用展现给用户的视图页面。
10.如权利要求9所述的一种事件总线的注册模板实现系统,其特征在于:所述用户Activity继承于模板Activity,则用户Activity继承模板Activity中复写的onCreate方法和onDestory方法以实现用户页面在事件总线的注册和反注册。
CN201810016185.3A 2018-01-08 2018-01-08 事件总线的注册模板实现方法、存储介质、设备及系统 Active CN110018910B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810016185.3A CN110018910B (zh) 2018-01-08 2018-01-08 事件总线的注册模板实现方法、存储介质、设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810016185.3A CN110018910B (zh) 2018-01-08 2018-01-08 事件总线的注册模板实现方法、存储介质、设备及系统

Publications (2)

Publication Number Publication Date
CN110018910A true CN110018910A (zh) 2019-07-16
CN110018910B CN110018910B (zh) 2021-07-23

Family

ID=67187540

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810016185.3A Active CN110018910B (zh) 2018-01-08 2018-01-08 事件总线的注册模板实现方法、存储介质、设备及系统

Country Status (1)

Country Link
CN (1) CN110018910B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111782196A (zh) * 2020-07-08 2020-10-16 上海乾臻信息科技有限公司 基于mvp架构的开发方法及装置
CN114339420A (zh) * 2020-10-09 2022-04-12 武汉斗鱼鱼乐网络科技有限公司 一种拉流方法、装置、电子设备及存储介质
CN114339420B (zh) * 2020-10-09 2024-05-17 北京神州数码云科信息技术有限公司 一种拉流方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040243663A1 (en) * 2003-04-08 2004-12-02 Johanson Bradley E. Event heap: a coordination infrastructure for dynamic heterogeneous application interactions in ubiquitous computing environments
CN103546476A (zh) * 2013-10-30 2014-01-29 北京华胜天成科技股份有限公司 页面组件之间的消息传递方法及系统
CN104360904A (zh) * 2014-10-16 2015-02-18 四川长虹电器股份有限公司 基于事件总线的模块间消息传递机制
CN106250246A (zh) * 2016-07-25 2016-12-21 福建天泉教育科技有限公司 一种事件传递的方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040243663A1 (en) * 2003-04-08 2004-12-02 Johanson Bradley E. Event heap: a coordination infrastructure for dynamic heterogeneous application interactions in ubiquitous computing environments
CN103546476A (zh) * 2013-10-30 2014-01-29 北京华胜天成科技股份有限公司 页面组件之间的消息传递方法及系统
CN104360904A (zh) * 2014-10-16 2015-02-18 四川长虹电器股份有限公司 基于事件总线的模块间消息传递机制
CN106250246A (zh) * 2016-07-25 2016-12-21 福建天泉教育科技有限公司 一种事件传递的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一片枫叶_刘超: "Android产品研发(三)--基类Activity", 《HTTPS://BLOG.CSDN.NET/QQ_23547831/ARTICLE/DETAILS/51546974》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111782196A (zh) * 2020-07-08 2020-10-16 上海乾臻信息科技有限公司 基于mvp架构的开发方法及装置
CN114339420A (zh) * 2020-10-09 2022-04-12 武汉斗鱼鱼乐网络科技有限公司 一种拉流方法、装置、电子设备及存储介质
CN114339420B (zh) * 2020-10-09 2024-05-17 北京神州数码云科信息技术有限公司 一种拉流方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN110018910B (zh) 2021-07-23

Similar Documents

Publication Publication Date Title
CN107705034B (zh) 众包平台实现方法及装置、存储介质和电子设备
US11050814B2 (en) Method, device and vehicle for message deduplication
CN110417575A (zh) 运维监控平台的告警方法、装置和计算机设备
CN108595316B (zh) 分布式应用的生命周期管理方法、管理器、设备和介质
CN111815421B (zh) 税务政策处理方法、装置、终端设备及存储介质
CN109409902A (zh) 风险用户识别方法、装置、计算机设备及存储介质
CN112307122B (zh) 一种基于数据湖的数据管理系统及方法
CN107193598A (zh) 一种应用启动方法、移动终端及计算机可读存储介质
CN109961423A (zh) 一种基于分类模型的肺结节检测方法、服务器及存储介质
CN114490642A (zh) 患者主索引生成方法、装置和介质
CN112313627A (zh) 事件到无服务器函数工作流实例的映射机制
CN111667843A (zh) 终端设备的语音唤醒方法、系统、电子设备、存储介质
CN112100239A (zh) 车辆检测设备画像生成方法、装置、服务器及可读存储介质
CN110018910A (zh) 事件总线的注册模板实现方法、存储介质、设备及系统
CN110378396A (zh) 样本数据标注方法、装置、计算机设备及存储介质
CN108347531A (zh) 求助方法、求助装置、电子设备及计算机可读存储介质
CN112330502B (zh) 合同审核方法及装置、电子设备、存储介质
CN108520063A (zh) 事件日志的处理方法、装置及终端设备
CN115374074A (zh) 日志处理方法、装置、存储介质及电子设备
CN110120899B (zh) 一种数据流的检测方法、装置、电子设备及存储介质
CN111352751A (zh) 数据文件生成方法、装置、计算机设备及存储介质
CN112951392B (zh) 资源信息推送方法、装置、电子设备及存储介质
US20100169716A1 (en) Managing confidence levels in a computing system
KR102230933B1 (ko) 챗봇 서비스 제공 서버로 응답 데이터를 제공하기 위한 전자 장치
US11748354B2 (en) Data shape confidence

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant