CN109062642A - 一种控件消息通知方法及装置 - Google Patents
一种控件消息通知方法及装置 Download PDFInfo
- Publication number
- CN109062642A CN109062642A CN201810712711.XA CN201810712711A CN109062642A CN 109062642 A CN109062642 A CN 109062642A CN 201810712711 A CN201810712711 A CN 201810712711A CN 109062642 A CN109062642 A CN 109062642A
- Authority
- CN
- China
- Prior art keywords
- control
- control message
- active
- target widget
- message
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明实施例提供了一种控件消息通知方法及装置,所述方法包括:获取控件消息;判断至少一个目标控件中的每个目标控件是否处于活跃状态,所述控件消息的控件类型与所述目标控件的类型相对应;当所述至少一个目标控件中的任意一个目标控件处于活跃状态时,向至少一个活跃目标控件发送所述控件消息,所述活跃目标控件为处于活跃状态的目标控件。本发明实施例通过判断目标控件是否处于活跃状态,根据判断结果向处于活跃状态的活跃目标控件发送控件消息,避免了向每个控件发送控件消息的情况,仅向活跃目标控件发送控件消息,减小了对CPU的消耗,节省了***资源,提高了发送控件消息的准确性。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种控件消息通知方法及装置。
背景技术
解耦是降低***中各个控件之间的耦合度。为了降低应用程序中各个控件的耦合度,需要采用解耦的方式开发各个控件,因此各个控件之间也需要采用解耦的方式进行相互通信。
具体地,应用程序可以根据用户触发的不同操作,产生不同的控件消息,并采用群发的方式向各个控件发送产生的各个控件消息,使得相应的控件可以根据产生的控件消息执行相应的操作,以完成用户触发的操作所对应的功能。
但是,应用程序采用群发的方式向每个控件发送控件消息,而大部分控件无法根据该控件消息执行相应的操作,使得CPU(Central Processing Unit,中央处理器)消耗增加,造成***资源浪费的问题。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种控件消息通知方法及装置。
根据本发明的第一方面,提供了一种控件消息通知方法,所述方法包括:
获取控件消息;
判断至少一个目标控件中的每个目标控件是否处于活跃状态,所述控件消息的控件类型与所述目标控件的类型相对应;
当所述至少一个目标控件中的任意一个目标控件处于活跃状态时,向至少一个活跃目标控件发送所述控件消息,所述活跃目标控件为处于活跃状态的目标控件。
可选地,所述向至少一个活跃目标控件发送所述控件消息,包括:
获取所述至少一个活跃目标控件中每个活跃目标控件的优先级;
按照每个活跃目标控件的优先级的高低顺序,依次向各个活跃目标控件发送所述控件消息。
可选地,所述按照每个活跃目标控件的优先级的高低顺序,依次向各个活跃目标控件发送所述控件消息,包括:
向最高优先级的活跃目标控件发送所述控件消息;
接收所述最高优先级的活跃目标控件反馈的功能信息,所述功能信息用于指示所述控件消息是否处于有效状态;
当所述功能信息指示所述控件消息处于无效状态时,停止向所述至少一个活跃目标控件中剩余的活跃目标控件发送所述控件消息。
可选地,在所述向至少一个活跃目标控件发送所述控件消息之后,所述方法还包括:
当检测到所述目标控件中的任意一个非活跃目标控件变化为活跃目标控件时,获取所述控件消息对应的当前功能信息,所述非活跃目标控件为处于非活跃状态的目标控件,所述当前功能信息为历史活跃目标控件反馈的功能信息,所述历史活跃目标控件为上一个接收所述控件消息的活跃目标控件;
当所述功能信息指示所述控件消息处于有效状态时,向由非活跃状态变为活跃状态的目标控件,发送所述控件消息。
可选地,在所述判断至少一个目标控件中的每个目标控件是否处于活跃状态之前,所述方法还包括:
获取所述控件消息对应的控件类型和匹配标识;
获取与所述控件类型相匹配的至少一个匹配控件;
获取所述至少一个匹配控件中每个匹配控件对应的控件标识;
遍历每个匹配控件的控件标识,得到与所述匹配标识相匹配的控件标识;
将与所述匹配标识相匹配的控件标识所属的匹配控件,作为所述目标控件。
可选地,所述向至少一个活跃目标控件发送所述控件消息,包括:
判断所述控件消息是否包括互斥标识;
当所述控件消息包括所述互斥标识时,根据每个活跃目标控件的优先级,仅向最高优先级对应的活跃目标控件发送所述控件消息。
根据本发明的第二方面,提供了一种控件消息通知装置,所述装置包括:
第一获取模块,用于获取控件消息;
判断模块,用于判断至少一个目标控件中的每个目标控件是否处于活跃状态,所述控件消息的控件类型与所述目标控件的类型相对应;
第一发送模块,用于当所述至少一个目标控件中的任意一个目标控件处于活跃状态时,向至少一个活跃目标控件发送所述控件消息,所述活跃目标控件为处于活跃状态的目标控件。
可选地,所述第一发送模块包括:
获取子模块,用于获取所述至少一个活跃目标控件中每个活跃目标控件的优先级;
第一发送子模块,用于按照每个活跃目标控件的优先级的高低顺序,依次向各个活跃目标控件发送所述控件消息。
可选地,所述第一发送子模块包括:
发送单元,用于向最高优先级的活跃目标控件发送所述控件消息;
接收单元,用于接收所述最高优先级的活跃目标控件反馈的功能信息,所述功能信息用于指示所述控件消息是否处于有效状态;
停止发送单元,用于当所述功能信息指示所述控件消息处于无效状态时,停止向所述至少一个活跃目标控件中剩余的活跃目标控件发送所述控件消息。
可选地,所述装置还包括:
第二获取模块,用于当检测到所述目标控件中的任意一个非活跃目标控件变化为活跃目标控件时,获取所述控件消息对应的当前功能信息,所述非活跃目标控件为处于非活跃状态的目标控件,所述当前功能信息为历史活跃目标控件反馈的功能信息,所述历史活跃目标控件为上一个接收所述控件消息的活跃目标控件;
第二发送模块,用于当所述功能信息指示所述控件消息处于有效状态时,向由非活跃状态变为活跃状态的目标控件,发送所述控件消息。
可选地,所述装置还包括:
第三获取模块,用于获取所述控件消息对应的控件类型和匹配标识;
第四获取模块,用于获取与所述控件类型相匹配的至少一个匹配控件;
第五获取模块,用于获取所述至少一个匹配控件中每个匹配控件对应的控件标识;
遍历模块,用于遍历每个匹配控件的控件标识,得到与所述匹配标识相匹配的控件标识;
确定模块,用于将与所述匹配标识相匹配的控件标识所属的匹配控件,作为所述目标控件。
可选地,所述第一发送模块包括:
判断子模块,用于判断所述控件消息是否包括互斥标识;
第二发送子模块,用于当所述控件消息包括所述互斥标识时,根据每个活跃目标控件的优先级,仅向最高优先级对应的活跃目标控件发送所述控件消息。
本发明实施例包括以下优点:
本发明实施例提供的控件消息通知方法和装置,通过获取控件消息,并判断与控件消息的控件类型相对应的各个目标控件是否处于活跃状态,当任意一个目标控件处于活跃状态时,则可以将该目标控件作为活跃目标控件,并向该活跃目标控件发送获取的控件消息。通过判断目标控件是否处于活跃状态,根据判断结果向处于活跃状态的活跃目标控件发送控件消息,避免了向每个控件发送控件消息的情况,仅向活跃目标控件发送控件消息,减小了对CPU的消耗,节省了***资源,提高了发送控件消息的准确性。
附图说明
图1是本发明实施例提供的一种控件消息通知方法所涉及的实施环境的示意图;
图2是本发明实施例提供的一种控件消息通知方法的流程图;
图3是本发明实施例提供的另一种控件消息通知方法的流程图;
图4是本发明实施例提供的一种发送控件消息的结构示意图;
图5是本发明实施例提供的一种控件消息通知装置的框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
在对本申请实施例进行详细说明之前,先对本申请实施例的应用场景进行介绍。
在终端运行应用程序的过程中,终端可以根据用户触发的操作,生成与用户操作相对应的界面,生成的界面中可以包括多个用于实现不同功能的控件,终端则可以显示该生成的界面。因此,终端可以将生成的界面作为各个控件所依附的生命周期对象,以便根据该界面的生命周期确定各个控件的生命周期。
相应的,参照图1,终端可以提供消息收发处理器101和消息队列102,当终端生成界面时,可以将生成界面中的各个控件1031、1032和1033进行注册。当检测到用户在生成的界面中触发的不同操作时,移动终端可以根据用户触发的不同操作,生成不同的控件消息1041、1042、1043和1044,则消息收发处理器101可以接收该控件消息1041、1042、1043和1044,并将该控件消息1041、1042、1043和1044添加至预先设置的消息队列102中,根据消息收发处理器101中各个控件1031、1032和1033注册的信息,从控件1031、1032和1033中选取与各个控件消息1041、1042、1043和1044的控件类型分别对应的目标控件,如果控件消息1041的控件类型对应的目标控件为1031,则移动终端可以再判断该目标控件1031是否处于活跃状态,也即是判断该目标控件1031所属的界面是否为当前正在显示的界面。
如果目标控件1031处于活跃状态,则可以将该目标控件1031作为活跃目标控件,并通过消息收发处理器101向该活跃目标控件发送控件消息1041,以使该活跃目标控件可以根据该控件消息1041,实现与用户触发的操作相对应的功能。
需要说明的是,消息队列102中可以包括多个控件消息,而控件消息不但可以根据用户触发的操作产生,也可以根据页面中的数据发生更新变化而产生,本发明实施例对此不做限定。例如,如果移动终端显示的是某个论坛的界面,当其他用户对论坛中的某个话题进行回复之后,该论坛的界面则可以刷新,以便对相应的数据进行更新。
在实际应用中,移动终端可以运行某个应用程序,并显示与该应用程序相对应的登录界面,在检测到用户触发的登录操作后,应用程序可以产生用于登录账户的控件信息,消息收发处理器可以接收该控件消息,并将该控件消息添加至消息队列中,消息收发处理器可以根据该控件消息的控件类型进行查找,得到与该控件类型相对应的用于登录账户的目标控件,再从目标控件中查找活跃目标控件,最后向该活跃目标控件发送控件消息,则该活跃目标控件可以根据该控件消息执行账户登录的操作,在登录成功后,应用程序则可以向用户展示登录后的界面。
实施例一
参照图2,示出了一种控件消息通知方法的流程图,该方法具体可以包括如下步骤:
步骤201:获取控件消息。
其中,控件消息用于指示控件执行功能操作的消息。
终端在运行应用程序的过程中,应用程序可以根据用户触发的操作,生成并显示不同的界面,而每个界面中可以包括多个控件,每个控件用于执行不同的操作,以实现不同的功能。
具体地,终端在运行应用程序的过程中,可以检测用户在应用程序的各个界面触发的操作,应用程序则可以根据用户触发的操作产生控件消息,以便在后续步骤中,界面中的控件可以根据该控件消息执行相应的操作。
例如,当用户开启社交类的应用程序与其他用户进行交互的过程中,如果检测到用户触发的发送操作,则可以生成与该发送操作相对应的控件消息,并将该控件消息加入与该应用程序相对应的消息队列中。
步骤202:判断至少一个目标控件中的每个目标控件是否处于活跃状态。
其中,该控件消息的控件类型与目标控件的类型相对应。由于不同控件消息用于执行不同的功能操作,因此不同的控件消息可以根据不同的功能操作对应不同的控件类型,以便可以选取与控件类型相匹配的控件作为目标控件。
在获取控件消息后,可以确定控件消息所对应的控件类型,也即是确定该控件消息用于指示的哪种类型的控件执行操作,从而确定至少一个目标控件,再判断至少一个目标控件中的每个目标控件是否处于活跃状态,得到判断结果,以便在后续步骤中,应用程序可以根据该判断结果向处于活跃状态的目标控件发送控件消息。
具体地,应用程序可以先根据控件消息所指示的功能操作,确定该控件消息可以作用于哪一类控件,从而确定控件消息的控件类型,再根据确定的控件类型进行查找,判断当前是否存在与该控件类型相对应的控件,进而将与控件类型相对应的控件作为目标控件,最后判断目标控件是否处于活跃状态。
进一步地,移动终端可以根据应用程序当前显示的界面,确定当前显示的界面所包括的控件,并遍历当前显示的界面中所包括的至少一个控件,再判断该至少一个控件是否包括目标控件,如果至少一个控件中的任一一个控件的类型与控件消息的控件类型相匹配,则可以将该控件作为目标控件,而且由于该控件属于移动终端当前显示的界面,可以将该控件确定为活跃目标控件;但是,如果至少一个控件中每个控件的类型与控件消息的控件类型均不匹配,则说明当前界面对应的各个控件均不是目标控件,也没有目标控件处于活跃状态。
需要说明的是,若不存在目标控件,则不再执行后续步骤,而是将消息队列中的控件消息进行删除;另外,当目标控件并未处于活跃状态时,也可以不再执行后续步骤,也即是不再向目标控件发送控件消息,而是将控件消息继续保留在消息队列中,以便当并未处于活跃状态的目标控件变为活跃状态时,向该目标控件发送控件消息。
而且,本发明实施例仅是以一个目标控件为例进行说明,而在实际应用中,可能包括多个目标控件,但是确定每个目标控件是否处于活跃状态的过程与上述过程类似,本发明实施例对此不做限定。
步骤203:当至少一个目标控件中的任意一个目标控件处于活跃状态时,向至少一个活跃目标控件发送控件消息。
其中,活跃目标控件为处于活跃状态的目标控件。
在确定任意一个目标控件处于活跃状态时,则可以将每个处于活跃状态的目标控件作为活跃目标控件,并向至少一个活跃目标控件发送控件消息,以使接收到控件消息的活跃目标控件,可以根据控件消息执行相应的操作,实现与用户触发的操作相对应的功能。
具体地,当确定目标控件中包括处于活跃状态的目标控件时,可以将每个处于活跃状态的目标控件作为活跃目标控件,并获取各个活跃目标控件的优先级,并按照各个活跃目标控件的优先级的高低顺序,依次向不同的活跃目标控件发送控件消息。
其中,活跃目标控件的优先级是在生成控件时预先设置好的。
本发明实施例包括以下优点:
本发明实施例提供的控件消息通知方法,通过获取控件消息,并判断与控件消息的控件类型相对应的各个目标控件是否处于活跃状态,当任意一个目标控件处于活跃状态时,则可以将该目标控件作为活跃目标控件,并向该活跃目标控件发送获取的控件消息。通过判断目标控件是否处于活跃状态,根据判断结果向处于活跃状态的活跃目标控件发送控件消息,避免了向每个控件发送控件消息的情况,仅向活跃目标控件发送控件消息,减小了对CPU的消耗,节省了***资源,提高了发送控件消息的准确性。
实施例二
参照图3,示出了另一种控件消息通知方法的流程图,该方法具体可以包括如下步骤:
步骤301:获取控件消息。
本步骤301与步骤201类似,在此不再赘述。
步骤302:获取目标控件。
在获取控件消息后,应用程序可以根据该控件消息所实现的功能,确定该控件消息的控件类型,进而根据该控件类型,查找得到与该控件类型相对应的目标控件。
可选的,可以获取控件消息对应的控件类型和匹配标识,并获取与该控件类型相匹配的至少一个匹配控件,再获取该至少一个匹配控件中每个匹配控件对应的控件标识,遍历每个匹配控件的控件标识,得到与该匹配标识相匹配的控件标识,将与该匹配标识相匹配的控件标识所属的匹配控件,作为目标控件。
其中,匹配标识用于指示控件消息所对应的控件。例如,该匹配标识可以为数字、字符串或者数字与字符串的组合,还可以为其他形式的匹配标识,本发明实施例对此不做限定。而且,控件标识用于指示匹配控件需要接收的控件消息所对应的标识,该控件标识与控件消息的匹配标识类似。
具体地,应用程序可以根据控件消息对应的功能,确定能够实现该功能的控件所对应的类型,从而确定控件消息的控件类型,并判断当前是否存在与该控件类型相对应的匹配控件。如果当前存在匹配控件,则可以再获取控件消息的匹配标识和每个匹配控件的控件标识,并将该匹配标识与每个匹配控件的控件标识进行匹配,判断该匹配标识是否为控件标识的子类标识,或者判断该匹配标识是否与控件标识一致,当匹配标识为控件标识的子类标识,或者匹配标识与控件标识一致时,可以将该控件标识所属的匹配控件作为目标控件,从而可以得到多个目标控件。
需要说明的是,可以预先将匹配标识和/或控件标识设置为三级标识,二级标识为一级标识的子类标识,三级标识为二级标识的子类标识。例如,控件消息对应的匹配标识为1234-5678-90,其中一级标识为1234,二级标识为5678,三级标识为90,当匹配控件的控件标识为1234-5678时,则说明该匹配控件需要接收任意一级标识为1234、且二级标识为5678的匹配标识所对应的控件消息。
步骤303:判断至少一个目标控件中的每个目标控件是否处于活跃状态。
本步骤303与步骤202类似,在此不再赘述。
步骤304:当至少一个目标控件中的任意一个目标控件处于活跃状态时,向至少一个活跃目标控件发送控件消息。
其中,活跃目标控件为处于活跃状态的目标控件。
在确定多个目标控件中的任意一个目标控件处于活跃状态时,则可以将处于活跃状态的目标控件作为活跃目标控件,并向活跃目标控件发送控件消息,以便活跃目标控件可以根据该控件消息实现相应的功能。
可选的,可以获取至少一个活跃目标控件中每个活跃目标控件的优先级,并按照每个活跃目标控件的优先级的高低顺序,依次向各个活跃目标控件发送控件消息。其中,控件的优先级是预先设定好的,例如在注册控件时即可设定该控件的优先级。
具体地,当确定多个目标控件处于活跃状态时,可以将每个处于活跃状态的目标控件作为活跃目标控件,并获取每个活跃目标控件的优先级,再按照各个优先级的高低顺序,对各个活跃目标控件进行排序,最后根据排序后的活跃目标控件,按照优先级从高至低的顺序,向各个活跃目标控件发送控件消息。
在实际应用中,多个活跃目标控件均可以接收控件消息,从而执行相同的功能。因此,当某个活跃目标控件根据控件消息,执行完成相应的功能后,无需其他控件继续接收该控件消息,并根据该控件消息再次相应的功能操作。
可选的,在按照每个活跃目标控件的优先级的高低顺序,依次向各个活跃目标控件发送控件消息的过程中,可以向最高优先级的活跃目标控件发送控件消息,并接收最高优先级的活跃目标控件反馈的功能信息,当功能信息指示控件消息处于无效状态时,则停止向至少一个活跃目标控件中剩余的活跃目标控件发送控件消息。其中,该功能信息用于指示控件消息是否处于有效状态。
但是,当该功能信息指示控件消息处于有效状态时,则可以按照剩余的活跃目标控件的优先级的高低顺序,以及各个活跃目标控件反馈的功能信息,依次向各个活跃目标控件发送控件消息。
具体地,在对活跃目标控件进行排序后,可以先向最高优先级的活跃目标控件发送控件消息,并接收该活跃目标控件反馈的功能信息,以便根据该功能信息确认是否需要向剩余的活跃目标控件发送控件消息。
当功能信息指示控件消息处于无效状态时,则说明最高优先级的活跃目标控件已经执行过该控件消息所指示的功能操作,无需其他活跃目标控件再次根据该控件消息执行相应的功能操作。
但是,如果功能信息指示控件消息仍然处于有效状态,则说明仍然需要其他活跃目标控件根据控件消息执行相应的功能操作,则可以根据该功能信息,向其他活跃目标控件发送控件消息。
需要说明的是,本发明实施例仅是以最高优先级的活跃目标控件反馈的功能信息为例进行说明,而在实际应用中,每个活跃目标控件在接收控件消息,并根据该控件消息执行相应的功能操作后,均可以反馈功能信息,从而根据各个反馈的功能信息,确定是否需要向其他活跃目标控件发送控件消息。
另外,在向至少一个活跃目标控件发送所述控件消息的过程中,还可以先判断控件消息是否包括互斥标识,当控件消息包括互斥标识时,则根据每个活跃目标控件的优先级,仅向最高优先级对应的活跃目标控件发送该控件消息。
其中,该互斥标识用于指示响应该控件消息的各个控件相互之间为互斥的,也即是,多个能够接收该控件消息的活跃目标控件,仅有一个活跃目标控件能够接收该控件消息,并根据该控件消息执行对应的功能操作。
步骤305:当检测到目标控件中的任意一个非活跃目标控件变化为活跃目标控件时,获取控件消息对应的当前功能信息。
其中,非活跃目标控件为处于非活跃状态的目标控件,当前功能信息为历史活跃目标控件反馈的功能信息,该历史活跃目标控件为上一个接收控件消息的活跃目标控件。
当检测到处于非活跃状态的目标控件变化为活跃状态时,则可以从消息队列中获取与该目标控件相对应的控件消息。但是,需要先获取该控件消息对应的当前功能信息,以便在后续步骤中,可以根据该当前功能信息向目标控件发送控件消息。
具体地,可以实时监控各个目标控件的活跃状态,当检测到某个目标控件由非活跃状态变为活跃状态时,将该目标控件作为活跃目标控件,并从消息队列中查找与该活跃目标控件对应的控件消息,最后获取该控件消息的当前功能信息。
步骤306:当功能信息指示控件消息处于有效状态时,向由非活跃状态变为活跃状态的目标控件,发送控件消息。
在获取控件消息对应的当前功能信息后,可以根据该当前功能信息确定控件消息是否处于有效状态。当当前功能信息指示控件消息仍然处于有效状态时,则可以向该由非活跃状态变为活跃状态的目标控件发送控件消息;但是,如果功能信息指示控件消息处于无效状态时,则不再向该目标控件发送控件消息。
需要说明的是,当各个控件所依附的对象销毁时,也即是,各个控件所在的页面关闭时,终端可以将消息收发控制器中,各个控件所注册的信息进行删除,避免向各个销毁的控件发送控件消息。
另外,在实际应用中,参照图4,终端可以参照如图4所示的结构,对控件消息进行发送。如图4所示,移动终端可以包括发送模块401、消息分发模块402和至少一个接收模块403。
其中,该接收模块403可以为各个控件,本发明实施例对此不做限定。
具体地,在发送模块401接收到用户触发的控件消息时,可以向消息分发模块402发送该控件消息,则消息分发模块402可以根据控件消息所对应的类型,以及各个接收模块403在消息分发模块402中注册的信息,向不同的接收模块403发送控件消息。相应的,接收到控件消息的接收模块403则可以根据控件消息,执行相应的操作。
而且,在消息分发模块402向某个接收模块403发送控件消息之前,可以判断该接收模块403是否处于活跃状态,当该接收模块403处于活跃状态时,则可以向该接收模块403发送控件消息。但是,如果该接收模块403并未处于活跃状态,则可以先不向该接收模块403发送控件消息,并暂时存储该控件消息,当检测到该接收模块403转变为活跃状态时,则可以再向接收模块403发送控件消息。
另外,针对某个控件消息,当消息分发模块402向与该控件消息的控件类型相对应的每个接收模块403,均发送过该控件消息后,消息分发模块402则可以删除该控件消息。
进一步地,如果消息分发模块402检测到能够接收某个控件消息的接收模块403均被销毁时,则消息分发模块402也可以删除该控件消息,从而避免冗余的控件消息占用内存。
本发明实施例包括以下优点:
本发明实施例提供的控件消息通知方法,通过获取控件消息,并判断与控件消息的控件类型相对应的各个目标控件是否处于活跃状态,当任意一个目标控件处于活跃状态时,则可以将该目标控件作为活跃目标控件,并向该活跃目标控件发送获取的控件消息。通过判断目标控件是否处于活跃状态,根据判断结果向处于活跃状态的活跃目标控件发送控件消息,避免了向每个控件发送控件消息的情况,仅向活跃目标控件发送控件消息,减小了对CPU的消耗,节省了***资源,提高了发送控件消息的准确性。
进一步地,通过按照各个活跃目标控件的优先级,向不同的活跃目标控件发送控件消息,并及时根据各个活跃目标控件反馈的功能消息,确定是否向其他活跃目标控件发送控件消息,可以有效阻止控件消息的无效发送,提高了发送控件消息的准确性。
进一步地,通过获取控件消息对应的匹配标识,以及每个匹配控件对应的控件标识,可以根据匹配标识和控件标识,将控件消息精准的发送至相应的控件,提高了发送控件消息的准确性。
进一步地,通过判断是否存在互斥标识,当存在互斥标识时,向优先级最高的控件发送控件消息,避免了随机向各个控件发送控件消息的情况,提高了发送控件消息的准确性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
实施例三
参照图5,示出了一种控件消息通知装置500的框图,该装置具体可以包括:
第一获取模块501,用于获取控件消息;
判断模块502,用于判断至少一个目标控件中的每个目标控件是否处于活跃状态,该控件消息的控件类型与该目标控件的类型相对应;
第一发送模块503,用于当该至少一个目标控件中的任意一个目标控件处于活跃状态时,向至少一个活跃目标控件发送该控件消息,该活跃目标控件为处于活跃状态的目标控件。
可选地,该第一发送模块503包括:
获取子模块,用于获取该至少一个活跃目标控件中每个活跃目标控件的优先级;
第一发送子模块,用于按照每个活跃目标控件的优先级的高低顺序,依次向各个活跃目标控件发送该控件消息。
可选地,该第一发送子模块包括:
发送单元,用于向最高优先级的活跃目标控件发送该控件消息;
接收单元,用于接收该最高优先级的活跃目标控件反馈的功能信息,该功能信息用于指示该控件消息是否处于有效状态;
停止发送单元,用于当该功能信息指示该控件消息处于无效状态时,停止向该至少一个活跃目标控件中剩余的活跃目标控件发送该控件消息。
可选地,该装置还包括:
第二获取模块,用于当检测到该目标控件中的任意一个非活跃目标控件变化为活跃目标控件时,获取该控件消息对应的当前功能信息,该非活跃目标控件为处于非活跃状态的目标控件,该当前功能信息为历史活跃目标控件反馈的功能信息,该历史活跃目标控件为上一个接收该控件消息的活跃目标控件;
第二发送模块,用于当该功能信息指示该控件消息处于有效状态时,向由非活跃状态变为活跃状态的目标控件,发送该控件消息。
可选地,该装置还包括:
第三获取模块,用于获取该控件消息对应的控件类型和匹配标识;
第四获取模块,用于获取与该控件类型相匹配的至少一个匹配控件;
第五获取模块,用于获取该至少一个匹配控件中每个匹配控件对应的控件标识;
遍历模块,用于遍历每个匹配控件的控件标识,得到与该匹配标识相匹配的控件标识;
确定模块,用于将与该匹配标识相匹配的控件标识所属的匹配控件,作为该目标控件。
可选地,该第一发送模块503包括:
判断子模块,用于判断该控件消息是否包括互斥标识;
第二发送子模块,用于当该控件消息包括该互斥标识时,根据每个活跃目标控件的优先级,仅向最高优先级对应的活跃目标控件发送该控件消息。
本发明实施例包括以下优点:
通过获取控件消息,并判断与控件消息的控件类型相对应的各个目标控件是否处于活跃状态,当任意一个目标控件处于活跃状态时,则可以将该目标控件作为活跃目标控件,并向该活跃目标控件发送获取的控件消息。通过判断目标控件是否处于活跃状态,根据判断结果向处于活跃状态的活跃目标控件发送控件消息,避免了向每个控件发送控件消息的情况,仅向活跃目标控件发送控件消息,减小了对CPU的消耗,节省了***资源,提高了发送控件消息的准确性。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。
本发明实施例是参照根据本发明实施例的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种控件消息通知方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种控件消息通知方法,其特征在于,所述方法包括:
获取控件消息;
判断至少一个目标控件中的每个目标控件是否处于活跃状态,所述控件消息的控件类型与所述目标控件的类型相对应;
当所述至少一个目标控件中的任意一个目标控件处于活跃状态时,向至少一个活跃目标控件发送所述控件消息,所述活跃目标控件为处于活跃状态的目标控件。
2.根据权利要求1所述的方法,其特征在于,所述向至少一个活跃目标控件发送所述控件消息,包括:
获取所述至少一个活跃目标控件中每个活跃目标控件的优先级;
按照每个活跃目标控件的优先级的高低顺序,依次向各个活跃目标控件发送所述控件消息。
3.根据权利要求2所述的方法,其特征在于,所述按照每个活跃目标控件的优先级的高低顺序,依次向各个活跃目标控件发送所述控件消息,包括:
向最高优先级的活跃目标控件发送所述控件消息;
接收所述最高优先级的活跃目标控件反馈的功能信息,所述功能信息用于指示所述控件消息是否处于有效状态;
当所述功能信息指示所述控件消息处于无效状态时,停止向所述至少一个活跃目标控件中剩余的活跃目标控件发送所述控件消息。
4.根据权利要求3所述的方法,其特征在于,在所述向至少一个活跃目标控件发送所述控件消息之后,所述方法还包括:
当检测到所述目标控件中的任意一个非活跃目标控件变化为活跃目标控件时,获取所述控件消息对应的当前功能信息,所述非活跃目标控件为处于非活跃状态的目标控件,所述当前功能信息为历史活跃目标控件反馈的功能信息,所述历史活跃目标控件为上一个接收所述控件消息的活跃目标控件;
当所述功能信息指示所述控件消息处于有效状态时,向由非活跃状态变为活跃状态的目标控件,发送所述控件消息。
5.根据权利要求1所述的方法,其特征在于,在所述判断至少一个目标控件中的每个目标控件是否处于活跃状态之前,所述方法还包括:
获取所述控件消息对应的控件类型和匹配标识;
获取与所述控件类型相匹配的至少一个匹配控件;
获取所述至少一个匹配控件中每个匹配控件对应的控件标识;
遍历每个匹配控件的控件标识,得到与所述匹配标识相匹配的控件标识;
将与所述匹配标识相匹配的控件标识所属的匹配控件,作为所述目标控件。
6.根据权利要求1至5任一所述的方法,其特征在于,所述向至少一个活跃目标控件发送所述控件消息,包括:
判断所述控件消息是否包括互斥标识;
当所述控件消息包括所述互斥标识时,根据每个活跃目标控件的优先级,仅向最高优先级对应的活跃目标控件发送所述控件消息。
7.一种控件消息通知装置,其特征在于,所述装置包括:
第一获取模块,用于获取控件消息;
判断模块,用于判断至少一个目标控件中的每个目标控件是否处于活跃状态,所述控件消息的控件类型与所述目标控件的类型相对应;
第一发送模块,用于当所述至少一个目标控件中的任意一个目标控件处于活跃状态时,向至少一个活跃目标控件发送所述控件消息,所述活跃目标控件为处于活跃状态的目标控件。
8.根据权利要求7所述的装置,其特征在于,所述第一发送模块包括:
获取子模块,用于获取所述至少一个活跃目标控件中每个活跃目标控件的优先级;
第一发送子模块,用于按照每个活跃目标控件的优先级的高低顺序,依次向各个活跃目标控件发送所述控件消息。
9.根据权利要求8所述的装置,其特征在于,所述第一发送子模块包括:
发送单元,用于向最高优先级的活跃目标控件发送所述控件消息;
接收单元,用于接收所述最高优先级的活跃目标控件反馈的功能信息,所述功能信息用于指示所述控件消息是否处于有效状态;
停止发送单元,用于当所述功能信息指示所述控件消息处于无效状态时,停止向所述至少一个活跃目标控件中剩余的活跃目标控件发送所述控件消息。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于当检测到所述目标控件中的任意一个非活跃目标控件变化为活跃目标控件时,获取所述控件消息对应的当前功能信息,所述非活跃目标控件为处于非活跃状态的目标控件,所述当前功能信息为历史活跃目标控件反馈的功能信息,所述历史活跃目标控件为上一个接收所述控件消息的活跃目标控件;
第二发送模块,用于当所述功能信息指示所述控件消息处于有效状态时,向由非活跃状态变为活跃状态的目标控件,发送所述控件消息。
11.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第三获取模块,用于获取所述控件消息对应的控件类型和匹配标识;
第四获取模块,用于获取与所述控件类型相匹配的至少一个匹配控件;
第五获取模块,用于获取所述至少一个匹配控件中每个匹配控件对应的控件标识;
遍历模块,用于遍历每个匹配控件的控件标识,得到与所述匹配标识相匹配的控件标识;
确定模块,用于将与所述匹配标识相匹配的控件标识所属的匹配控件,作为所述目标控件。
12.根据权利要求7至11任一所述的装置,其特征在于,所述第一发送模块包括:
判断子模块,用于判断所述控件消息是否包括互斥标识;
第二发送子模块,用于当所述控件消息包括所述互斥标识时,根据每个活跃目标控件的优先级,仅向最高优先级对应的活跃目标控件发送所述控件消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810712711.XA CN109062642B (zh) | 2018-06-29 | 2018-06-29 | 一种控件消息通知方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810712711.XA CN109062642B (zh) | 2018-06-29 | 2018-06-29 | 一种控件消息通知方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109062642A true CN109062642A (zh) | 2018-12-21 |
CN109062642B CN109062642B (zh) | 2022-04-08 |
Family
ID=64818807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810712711.XA Active CN109062642B (zh) | 2018-06-29 | 2018-06-29 | 一种控件消息通知方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109062642B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124701A (zh) * | 2019-11-12 | 2020-05-08 | 华为终端有限公司 | 消息的处理方法、装置及终端 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005041037A2 (en) * | 2003-10-23 | 2005-05-06 | Siemens Aktiengesellschaft | Software framework interfacing applications and redundant resources |
CN101980503A (zh) * | 2010-10-18 | 2011-02-23 | 中兴通讯股份有限公司 | 一种widget应用管理方法、装置和*** |
US20120311578A1 (en) * | 2011-06-03 | 2012-12-06 | Fujitsu Limited | Information terminal apparatus and method thereof |
CN103957150A (zh) * | 2014-05-07 | 2014-07-30 | 惠州Tcl移动通信有限公司 | 电子设备的通知消息的同步方法及服务器、电子设备 |
CN108206777A (zh) * | 2017-11-28 | 2018-06-26 | 维沃移动通信有限公司 | 一种消息推送方法及服务器 |
-
2018
- 2018-06-29 CN CN201810712711.XA patent/CN109062642B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005041037A2 (en) * | 2003-10-23 | 2005-05-06 | Siemens Aktiengesellschaft | Software framework interfacing applications and redundant resources |
CN101980503A (zh) * | 2010-10-18 | 2011-02-23 | 中兴通讯股份有限公司 | 一种widget应用管理方法、装置和*** |
US20120311578A1 (en) * | 2011-06-03 | 2012-12-06 | Fujitsu Limited | Information terminal apparatus and method thereof |
CN103957150A (zh) * | 2014-05-07 | 2014-07-30 | 惠州Tcl移动通信有限公司 | 电子设备的通知消息的同步方法及服务器、电子设备 |
CN108206777A (zh) * | 2017-11-28 | 2018-06-26 | 维沃移动通信有限公司 | 一种消息推送方法及服务器 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124701A (zh) * | 2019-11-12 | 2020-05-08 | 华为终端有限公司 | 消息的处理方法、装置及终端 |
CN111124701B (zh) * | 2019-11-12 | 2023-11-17 | 华为终端有限公司 | 消息的处理方法、装置及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN109062642B (zh) | 2022-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10582011B2 (en) | Application cards based on contextual data | |
CN113010896B (zh) | 确定异常对象的方法、装置、设备、介质和程序产品 | |
CN105808407A (zh) | 管理设备的方法、设备和设备管理控制器 | |
WO2018120891A1 (zh) | 软件开发进度预警方法、装置、服务器和存储介质 | |
CN104808991A (zh) | 一种终端处理方法 | |
US10715628B2 (en) | Attribute operating method and device | |
CN104793982A (zh) | 一种创建虚拟机的方法和设备 | |
CN114401121A (zh) | 应用程序登录方法、装置、电子设备及可读存储介质 | |
CN109062642A (zh) | 一种控件消息通知方法及装置 | |
CN117520195A (zh) | 测试接口的方法、装置、设备、存储介质及程序产品 | |
CN106453544B (zh) | 一种云环境及其监控方法、*** | |
CN115933591B (zh) | 一种控制器诊断方法、装置、设备和存储介质 | |
CN116684302A (zh) | 车载以太网的测试方法及装置 | |
CN115421859B (zh) | 配置文件的动态加载方法、装置、计算机设备及存储介质 | |
US20220342742A1 (en) | Graphical management of big data pipelines | |
WO2016196068A1 (en) | Context-aware display of objects in mixed environments | |
CN113282489B (zh) | 一种接口测试方法和装置 | |
Park et al. | Self-adaptive middleware framework for internet of things | |
CN115309730A (zh) | 数据审核方法、装置、电子设备及存储介质 | |
CN104239199A (zh) | 虚拟机器人的生成方法、自动化测试方法及相关装置 | |
CN104978214B (zh) | 一种组件加载方法、装置及终端 | |
CN105930722B (zh) | 一种基于形式化描述的移动终端安全性检测方法及装置 | |
CN117492822B (zh) | 变更对比方法、装置、电子设备及存储介质 | |
CN109271269A (zh) | 一种应用闪退的处理方法、装置及设备 | |
CN115270672A (zh) | 一种tcam封装模块的验证方法、装置、设备及存储介质 |
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 |