CN110647405A - ***消息处理方法、电子设备和计算机可读存储介质 - Google Patents

***消息处理方法、电子设备和计算机可读存储介质 Download PDF

Info

Publication number
CN110647405A
CN110647405A CN201810681959.4A CN201810681959A CN110647405A CN 110647405 A CN110647405 A CN 110647405A CN 201810681959 A CN201810681959 A CN 201810681959A CN 110647405 A CN110647405 A CN 110647405A
Authority
CN
China
Prior art keywords
class
handler
handlemessagecallback
activity
derived
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.)
Pending
Application number
CN201810681959.4A
Other languages
English (en)
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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information 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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201810681959.4A priority Critical patent/CN110647405A/zh
Publication of CN110647405A publication Critical patent/CN110647405A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本公开涉及移动互联网技术领域,具体涉及一种***消息处理方法、电子设备和计算机可读存储介质。所述***消息处理方法,包括:定义全局的HandleMessageCallback类和Handler派生类,其中,在Handler派生类的构造函数中接收HandleMessageCallback类的参数,并在Handler派生类中持有HandleMessageCallback类的参数的弱引用;在Activity类中创建Handler派生类的成员变量,其中作为参数传入HandleMessageCallback类的实例;在onHandleMessage方法中对接收的消息进行处理。由于Handler派生类是全局的类,只需要有一个,所有Activity类都可以直接使用该Handler派生类,与每次新建静态内部类的做法相比,大大减少了类的数量,在性能上具有优势。

Description

***消息处理方法、电子设备和计算机可读存储介质
技术领域
本公开涉及移动互联网技术领域,具体涉及一种***消息处理方法、电子设备和计算机可读存储介质。
背景技术
在安卓开发中,如果在Activity(活动)类里面直接通过匿名内部类的方式使用Handler(处理机)类,如下面所示的代码:
Figure BDA0001710692980000011
则存在内存泄漏的隐患。
在Android Studio(安卓开发平台)里面会有内存泄漏的警告,并给出了Google(谷歌)官方推荐的解决方法:即将Handler定义为静态内部类,然后使其持有外部Activity的弱引用,所有Handler内部对Activity的调用都通过弱引用来操作。如下面对代码所示:
Figure BDA0001710692980000012
Figure BDA0001710692980000021
这种方式,使得Handler对于外部Activity的引用方式,由强引用变成了弱引用,从而防止了内存泄漏的问题。
上述解决方案可以解决内存泄漏的隐患,然而却存在如下缺点:
(1)每次使用都需要定义新的静态内部类,增加了java类的数量,导致类加载的开销增大,对性能会造成一定的影响。
(2)使用不方便。使用时需要在Activity里面定义新的Handler静态类,而这种新定义的类,除了业务逻辑的处理代码之外,其他的实现基本都是一样的,会产生重复代码。此外在Handler内部访问Activity的成员变量时,需要先拿到其弱引用才能进行操作,与直接访问相比要麻烦很多。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种***消息处理方法、计算机存储介质以及电子设备,至少在一定程度上克服由于相关技术的限制和缺陷而导致的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的第一方面,提供一种***消息处理方法,包括:定义全局的HandleMessageCallback(消息处理回调函数)类;定义全局的Handler派生类,其中,在所述Handler派生类的构造函数中接收所述HandleMessageCallback类的参数,并在所述Handler派生类中持有所述HandleMessageCallback类的参数的弱引用;在活动Activity类中创建所述Handler派生类的成员变量,其中作为参数传入所述HandleMessageCallback类的实例;在onHandleMessage方法中对接收的消息进行处理。
在一个实施例中,所述在Activity类中创建所述Handler派生类的成员变量,其中作为参数传入所述HandleMessageCallback类的实例包括:构建所述HandleMessageCallback类的实例,将所述HandleMessageCallback类的实例传入到在Activity类中创建所述Handler派生类的成员变量;
所述在onHandleMessage方法中对接收的消息进行处理包括:在所述HandleMessageCallback类的onHandleMessage方法中对接收的消息进行处理。
在一个实施例中,所述在Activity类中创建所述Handler派生类的成员变量,其中参数传入所述HandleMessageCallback类的实例包括:所述Activity类实现HandleMessageCallback类接口;在Activity类中创建所述Handler派生类的成员变量,其中传入所述Activity类的指针;
所述在onHandleMessage方法中对接收的消息进行处理包括:在Activity类的onHandleMessage方法中对接收的消息进行处理。
在一个实施例中,所述***为安卓***。
根据本发明的另一方面,提供一种***消息处理方法,包括:从消息队列中获取消息;调用活动Activity组件中Handler派生类的HandleMessage方法处理所述消息,其中,所述Handler派生类的构造函数接收消息处理回调函数HandleMessageCallback类的参数,持有所述HandleMessageCallback类的参数的弱引用,所述Handler派生类和所述HandleMessageCallback类均为全局定义的类;获得所述Handler派生类持有的HandleMessageCallback类的弱引用,在onHandleMessage方法中对所述消息进行处理。
在一个实施例中,该方法还包括:构建所述HandleMessageCallback类的实例,在创建所述Handler派生类时将所述HandleMessageCallback类的实例作为参数传入所述Handler派生类;
所述在onHandleMessage方法中对接收的消息进行处理包括:在所述HandleMessageCallback类的onHandleMessage方法中对接收的消息进行处理。
在一个实施例中,该方法还包括:所述Activity组件中实现HandleMessageCallback类接口;在所述Activity组件中创建所述Handler派生类的成员变量,其中传入所述Activity组件的指针;
所述在onHandleMessage方法中对接收的消息进行处理包括:在Activity组件的onHandleMessage方法中对接收的消息进行处理。
在一个实施例中,***为安卓***。
根据本公开的又一方面,提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述的***消息处理方法。
根据本公开的再一方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述的***消息处理方法。
由于Handler派生类是全局的类,只需要有一个,所有Activity类可以直接使用该Handler派生类,与每次新建静态内部类的做法相比,大大减少了类的数量,从而避免了过多的类加载,在性能上具有优势。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出根据本公开一种***消息处理方法一个实施例的流程图;
图2示出根据本公开一种***消息处理方法另一个实施例的流程图;
图3示出根据本公开一种***消息处理方法又一个实施例的流程图;
图4示出根据本公开一种***消息处理方法的原理示意图;
图5示出根据本公开一种***消息处理方法再一个实施例的流程图;
图6示出实施本公开的***消息处理方法的电子设备的示意图;和
图7示出存储有本公开***消息处理方法执行指令的计算机存储介质示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
在本文中:
内存泄漏:程序运行过程中分配的内存使用完后未被及时释放,导致程序运行缓慢甚至崩溃的现象。
Activity组件:Activity组件是安卓应用中负责管理UI和用户交互的组件,Activity类是实现Activity组件的类。
Handler:安卓中任务执行和线程通信的工具,常用于子线程和UI线程的交互。
强引用:被强引用持有的内存对象不会被垃圾回收器回收。
弱引用:被弱引用持有的内存对象可以被垃圾回收器回收。
图1示出根据本公开一种***消息处理方法一个实施例的流程图。
如图1所示,在步骤S102,定义全局的HandleMessageCallback(消息处理回调函数)类,。
在步骤S104,定义全局的Handler派生类,其中,在Handler派生类的构造函数中接收HandleMessageCallback类的参数,并在Handler派生类中持有HandleMessageCallback类的参数的弱引用。
在步骤S106,在Activity(活动)类中创建Handler派生类的成员变量,其中作为参数传入HandleMessageCallback类的实例。
在步骤S108在onHandleMessage方法中对接收的消息进行处理。
上述实施例中,Handler派生类是全局的类,只需要有一个,所有Activity类都可以直接使用该Handler派生类,与每次新建静态内部类的做法相比,大大减少了类的数量,从而避免了过多的类加载,在性能上具有优势。
图2示出根据本公开一种***消息处理方法另一个实施例的流程图。
如图2所示,在步骤S201、S202,定义全局的类WeakHandler(Handler派生类)和HandleMessageCallback,WeakHandler的构造函数接收一个HandleMessageCallback类型的参数,并持有其弱引用。然后在需要处理Handler的消息时,拿到HandleMessageCallback的弱引用,并调用其onHandleMessage()方法实现消息的具体处理逻辑。如下所示:
Figure BDA0001710692980000061
Figure BDA0001710692980000071
在步骤S204、S206,全局的WeakHandler类准备好之后,在Activity里面使用时,创建一个WeakHandler类的实例。在创建WeakHandler实例时,提供一个HandleMessageCallback的对象作为参数。
在步骤S208,在HandleMessageCallback的onHandleMessage()方法里面实现具体的处理消息的逻辑。具体如下所示:
Figure BDA0001710692980000072
可见,该实现方式中调用的代码简洁很多,基本和直接使用Handler相差不大。WeakHandler准备好之后,项目中所有Activity使用Handler的地方,都可以按照上述方法使用。
在另一个实施例中,不用每次都创建新的HandleMessageCallback实例,而是让Activity本身实现HandleMessageCallback类接口,在Activity类中创建所述Handler派生类的成员变量,其中传入所述Activity类的指针;并重写onHandleMessage()方法,在Activity类的onHandleMessage方法中对接收的消息进行处理。如下所示:
Figure BDA0001710692980000081
由于WeakHandler是全局的类,只有一个,所有Activity都可以直接使用该WeakHandler全局类,与Google官方推荐的每次新建静态内部类的做法相比,大大减少了类的数量,从而避免了过多的类加载,在性能上有一定的优势。从具体的使用来看,达到了和使用原生Handler近似的使用体验,其易用性比Google官方的推荐做法要高出很多。在一个实施例中,所有重复代码可以封装在WeakHandler内部,不需要开发者每次都重复实现,减少了代码开发工作量。
图3示出根据本公开一种***消息处理方法又一个实施例的流程图。
如图3所示,步骤S302,从消息队列中获取消息。
步骤S304,调用活动Activity组件中Handler派生类的HandleMessage方法处理该消息,其中,Handler派生类的构造函数接收HandleMessageCallback类的参数,持有HandleMessageCallback类的参数的弱引用,Handler派生类和HandleMessageCallback类均为全局定义的类;
步骤S306,获得Handler派生类持有的HandleMessageCallback类的弱引用,在onHandleMessage方法中对所述消息进行处理。
上述实施例中,通过全局的Handler派生类处理消息,只需要有一个,所有Activity类都可以直接使用该Handler派生类,与每次新建静态内部类的做法相比,大大减少了类的数量,从而避免了过多的类加载,具有优势。
图4示出根据本公开一种***消息处理方法的原理示意图。如图4所示,上半部分为直接使用Handler的引用链情况,下半部分为本方案的引用链情况,其中实线为强引用,虚线为弱引用。Java对象被强引用持有时无法被垃圾回收器回收,而被弱引用持有时,是可以在一定时机下被垃圾回收器回收的。因此将callback和Handler之间的引用改为弱引用,可以使得callback可以被垃圾回收器回收,从而其Activity也会相应的被释放。因此可以达到避免内存泄漏的目的。
具体工作机制的流程图如图5所示:
步骤S501,Handler调用sendMessage方法将Message放入MessageQueue等待执行。
步骤S502,线程Looper不断从MessageQueue中取得Message进行处理。
步骤S503,调用WeakHandler的handleMessage方法处理Message。
步骤S504,WeakHandler获得HandleMessageCallback的弱引用,调用其onHandleMessage方法,实现消息具体处理逻辑。
在上图5中,单线箭头表示引用关系,双线箭头表示调用关系。
在本公开的示例性实施例中,还提供了一种能够实现上述***消息处理方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为***、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
下面参照图6来描述根据本发明的这种实施方式的电子设备600。图6显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:上述至少一个处理单元610、上述至少一个存储单元620、连接不同***组件(包括存储单元620和处理单元610)的总线630。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元610可以执行如图1中所示的S102,定义全局的HandleMessageCallback(消息处理回调函数)类;S104,定义全局的Handler派生类,其中,在Handler派生类的构造函数中接收HandleMessageCallback类的参数,并在Handler派生类中持有HandleMessageCallback类的参数的弱引用;S106,在Activity(活动)类中创建Handler派生类的成员变量,其中作为参数传入HandleMessageCallback类的实例;S108在onHandleMessage方法中对接收的消息进行处理。
存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器660通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
参考图7所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品700,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。

Claims (10)

1.一种***消息处理方法,其特征在于,包括:
定义全局的消息处理回调函数HandleMessageCallback类;
定义全局的Handler派生类,其中,在所述Handler派生类的构造函数中接收所述HandleMessageCallback类的参数,并在所述Handler派生类中持有所述HandleMessageCallback类的参数的弱引用;
在活动Activity类中创建所述Handler派生类的成员变量,其中作为参数传入所述HandleMessageCallback类的实例;
在onHandleMessage方法中对接收的消息进行处理。
2.根据权利要求1所述的方法,其特征在于,所述在Activity类中创建所述Handler派生类的成员变量,其中作为参数传入所述HandleMessageCallback类的实例包括:
构建所述HandleMessageCallback类的实例,将所述HandleMessageCallback类的实例传入到在Activity类中创建所述Handler派生类的成员变量;
所述在onHandleMessage方法中对接收的消息进行处理包括:
在所述HandleMessageCallback类的onHandleMessage方法中对接收的消息进行处理。
3.根据权利要求1所述的方法,其特征在于,所述在Activity类中创建所述Handler派生类的成员变量,其中参数传入所述HandleMessageCallback类的实例包括:
所述Activity类实现HandleMessageCallback类接口;
在Activity类中创建所述Handler派生类的成员变量,其中传入所述Activity类的指针;
所述在onHandleMessage方法中对接收的消息进行处理包括:
在Activity类的onHandleMessage方法中对接收的消息进行处理。
4.根据权利要求1-3中任意一项所述的方法,其特征在于,所述***为安卓***。
5.一种***消息处理方法,其特征在于,包括:
从消息队列中获取消息;
调用活动Activity组件中Handler派生类的HandleMessage方法处理所述消息,其中,所述Handler派生类的构造函数接收消息处理回调函数HandleMessageCallback类的参数,持有所述HandleMessageCallback类的参数的弱引用,所述Handler派生类和所述HandleMessageCallback类均为全局定义的类;
获得所述Handler派生类持有的HandleMessageCallback类的弱引用,在onHandleMessage方法中对所述消息进行处理。
6.根据权利要求5所述的方法,其特征在于,还包括:
构建所述HandleMessageCallback类的实例,在创建所述Handler派生类时将所述HandleMessageCallback类的实例作为参数传入所述Handler派生类;
所述在onHandleMessage方法中对接收的消息进行处理包括:
在所述HandleMessageCallback类的onHandleMessage方法中对接收的消息进行处理。
7.根据权利要求5所述的方法,其特征在于,还包括:
所述Activity组件中实现HandleMessageCallback类接口;
在所述Activity组件中创建所述Handler派生类的成员变量,其中传入所述Activity组件的指针;
所述在onHandleMessage方法中对接收的消息进行处理包括:
在Activity组件的onHandleMessage方法中对接收的消息进行处理。
8.根据权利要求5-7中任意一项所述的方法,其特征在于,所述***为安卓***。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~8中任意一项所述的***消息处理方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~8中任意一项所述的***消息处理方法。
CN201810681959.4A 2018-06-27 2018-06-27 ***消息处理方法、电子设备和计算机可读存储介质 Pending CN110647405A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810681959.4A CN110647405A (zh) 2018-06-27 2018-06-27 ***消息处理方法、电子设备和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810681959.4A CN110647405A (zh) 2018-06-27 2018-06-27 ***消息处理方法、电子设备和计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN110647405A true CN110647405A (zh) 2020-01-03

Family

ID=69009095

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810681959.4A Pending CN110647405A (zh) 2018-06-27 2018-06-27 ***消息处理方法、电子设备和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN110647405A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112214234A (zh) * 2020-10-24 2021-01-12 鹰信科技有限公司 基于java的ui更新方法、***及其存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598725A (zh) * 2016-10-31 2017-04-26 武汉斗鱼网络科技有限公司 一种基于Android的Handler防内存泄漏装置及方法
CN107515792A (zh) * 2017-07-27 2017-12-26 北京五八信息技术有限公司 功能类使用Handler进行消息处理的方法和装置
US20170371627A1 (en) * 2016-06-28 2017-12-28 International Business Machines Corporation Object-oriented container class callbacks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170371627A1 (en) * 2016-06-28 2017-12-28 International Business Machines Corporation Object-oriented container class callbacks
CN106598725A (zh) * 2016-10-31 2017-04-26 武汉斗鱼网络科技有限公司 一种基于Android的Handler防内存泄漏装置及方法
CN107515792A (zh) * 2017-07-27 2017-12-26 北京五八信息技术有限公司 功能类使用Handler进行消息处理的方法和装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
GYCOLD: "gycold / EasyAndroid", pages 1 - 16, Retrieved from the Internet <URL:https://github.com/gycold/EasyAndroid/commit/2ccbc30f3aa0e1c4ab202b795d9210ae8ace3fc4> *
RICHIE0006: "Weak Handler 与 内存泄露", pages 1 - 6, Retrieved from the Internet <URL:https://blog.csdn.net/richie0006/article/details/50789815> *
黄蓉;: "Android消息处理机制研究", 黑龙江科技信息, no. 33 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112214234A (zh) * 2020-10-24 2021-01-12 鹰信科技有限公司 基于java的ui更新方法、***及其存储介质

Similar Documents

Publication Publication Date Title
CN113110941B (zh) 使用应用容器管理代码和依赖性数据的传递
CN109032706B (zh) 智能合约执行方法、装置、设备和存储介质
US9754018B2 (en) Rendering interpreter for visualizing data provided from restricted environment container
CN111090536B (zh) 一种获取内存泄露信息的方法、装置、介质和电子设备
CN108182131B (zh) 监控应用运行状态的方法、装置、存储介质及电子设备
WO2020119800A1 (zh) 一种列表显示方法、装置、设备及存储介质
CN111338623B (zh) 一种开发用户界面的方法、装置、介质和电子设备
CN110389786B (zh) 内核管理方法、电子设备和计算机可读存储介质
CN110059456B (zh) 代码保护方法、代码保护装置、存储介质与电子设备
CN111190673B (zh) 基于操作监测的页面展示方法、装置和电子设备
CN111324474B (zh) Celery任务管理方法、***、设备及存储介质
US9817671B2 (en) Rule-based activation of behaviors in an extensible software application
CN110609687A (zh) 一种编译方法、装置、电子设备和存储介质
US20160124757A1 (en) Monitoring a mobile device application
CN106775608B (zh) 独立***进程的实现方法和装置
US20170235943A1 (en) Application Access Control Method and Apparatus
CN110647405A (zh) ***消息处理方法、电子设备和计算机可读存储介质
CN110188071B (zh) 数据处理方法、装置、电子设备和计算机可读介质
CN110045952B (zh) 代码调用方法与装置
CN111381816A (zh) 应用程序的获取方法、装置、设备及存储介质
KR20130020135A (ko) 통합 개발 환경에서의 코드 동시 개발자 리스트 제공 시스템 및 방법
US11429358B2 (en) Representing asynchronous state machine in intermediate code
EP3872630A2 (en) Request processing method and apparatus, electronic device, and computer storage medium
US20120072891A1 (en) Computer Language Syntax for Automatic Callback Function Generation
CN113778451A (zh) 文件加载方法、装置、计算机***和计算机可读存储介质

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