广播消息排队的方法、装置及终端与流程

文档序号:12695844阅读:198来源:国知局
广播消息排队的方法、装置及终端与流程

本发明实施例涉及系统广播技术,尤其涉及一种广播消息排队的方法、装置及终端。



背景技术:

安卓(Android)系统是目前应用较为广泛的一种手机等终端的操作系统。Android系统中,有很多不同的应用程序,为了在不同的应用程序中快速的进行信息传递,Android系统利用广播机制来实现,有消息要通知不同的应用程序时,就通过广播将这个消息发送给不同的应用程序。

在Android系统中,广播发送者发送的广播消息没有限制,从而一个广播发送者可以随意发送任意数量的广播,或非常频繁的发送广播,会导致广播消息队列中待处理的广播消息非常的多,导致重要的广播消息不能得到及时处理,引起系统功能异常。



技术实现要素:

本发明实施例提供一种广播消息排队的方法、装置及终端,可以及时快速的处理重要的广播消息,避免系统功能异常。

第一方面,本发明实施例提供了一种广播消息排队的方法,所述方法包括:

监听广播发送者发出的广播消息;

在监听到广播发送者发出广播消息时,确定所述广播消息的广播接收者;

根据所述广播接收者,确定所述广播消息的优先级;

根据所述广播消息的优先级,确定所述广播消息在广播消息队列中的插入位置;

根据所述插入位置,将所述广播消息插入所述广播消息队列。

第二方面,本发明实施例还提供了一种广播消息排队的装置,所述装置包括:

广播消息监听模块,用于监听广播发送者发出的广播消息;

广播接收者确定模块,用于在监听到广播发送者发出广播消息时,确定所述广播消息的广播接收者;

优先级确定模块,用于根据所述广播接收者,确定所述广播消息的优先级;

插入位置确定模块,用于根据所述广播消息的优先级,确定所述广播消息在广播消息队列中的插入位置;

广播消息插入模块,用于根据所述插入位置,将所述广播消息插入所述广播消息队列。

第三方面,本发明实施例还提供了一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

监听广播发送者发出的广播消息;

在监听到广播发送者发出广播消息时,确定所述广播消息的广播接收者;

根据所述广播接收者,确定所述广播消息的优先级;

根据所述广播消息的优先级,确定所述广播消息在广播消息队列中的插入位置;

根据所述插入位置,将所述广播消息插入所述广播消息队列。

本发明实施例的技术方案,通过在监听到广播发送者发出广播消息时,确定所述广播消息的广播接收者,并根据所述广播接收者确定所述广播消息的优先级,进而根据所述优先级确定所述广播消息在广播消息队列中的插入位置,将所述广播消息插入广播消息队列,由于根据优先级确定广播消息在广播消息队列中的位置,从而可以及时快速的处理高优先级的广播消息,及时快速的处理重要的广播消息,避免了系统功能异常。

附图说明

图1是本发明实施例提供的一种广播消息排队的方法的流程图;

图2是本发明一个实施例提供的一种广播消息排队的方法的流程图;

图3是本发明实施例提供的一种广播消息排队的装置的结构示意图;

图4为本发明实施例提供的一种终端的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

图1是本发明实施例提供的一种广播消息排队的方法的流程图,本实施例可适用于在监听到广播消息时确定广播消息在广播消息队列中的位置的情况,该方法可以由广播消息排队的装置来执行,其中该装置可由软件和/或硬件实现,该装置可集成于终端中,该终端可以是智能手机、平板电脑等,该方法包括如下步骤:

步骤110,监听广播发送者发出的广播消息。

其中,广播机制本质上是在终端的操作系统中一种组件间的通讯方式,是一种广泛运用在应用程序之间传输消息的机制。例如在终端的安卓系统下,有一些操作完成以后,会发送广播消息。广播消息可以是操作系统中产生的各种各样的事件消息数据,比如说发出一条短信或打出一个电话,都会发送广播,当某个应用程序接收了这个广播时,就可以做出相应的处理。广播发送者可以是系统和应用程序软件。应用程序软件可以是安装于手机等终端的第三方应用软件或者系统自带的应用程序,例如:安装于终端的第三方应用程序软件可以包括微信客户端、QQ客户端、淘宝客户端和支付宝客户端等,系统自带的应用程序可以包括日历、时钟、天气和便签等。广播消息可以是系统广播和应用广播,其中,系统广播可以包括亮屏广播、熄屏广播、解锁广播、网络状态变化广播、蓝牙状态变化广播、切换语言广播、切换主题广播等,应用广播可以是由应用程序软件发出的广播。

可以通过终端中的广播管理模块(如ActivityManagerService)监听系统中所有广播发送者的动态,检测广播发送者是否发出广播消息。其中,ActivityManagerService在Android系统的广播机制中扮演着广播中心的角色,负责系统中所有广播的注册和发布操作,其中,广播的注册是指应用程序把广播接收器注册到ActivityManagerService的过程。广播的发布包括广播发送者将广播发送到ActivityManagerService,ActivityManagerService接收到这个广播以后在自己的注册中心查看有哪些广播接收器订阅了该广播,然后把这个广播逐一发送到这些广播接收器中。在Android系统中,监听广播发送者发出的广播消息即通过ActivityManagerService来监听广播发送者是否将广播消息发送到ActivityManagerService,当通过ActivityManagerService监听到广播发送者将广播消息发送到ActivityManagerService时,确定监听到广播发送者发出了广播消息。

步骤120,在监听到广播发送者发出广播消息时,确定所述广播消息的广播接收者。

在通过广播管理模块监听到广播发送者发出广播消息时,查询注册了接收该广播消息的广播接收器,从而确定接收所述广播消息的广播接收者。

示例性的,在Android系统中,广播发送者将要发布的广播消息发送到ActivityManagerService,ActivityManagerService接收到广播消息后在注册中心查看有哪些广播接收器订阅了该广播,这时通过注册接收该广播消息的广播接收器(即广播接收进程),通过广播接收器可以确定接收该广播消息的广播接收者(应用程序或者系统)。

步骤130,根据所述广播接收者,确定所述广播消息的优先级。

在确定了广播消息的广播接收者后,可以根据广播接收者的重要程度确定所述广播消息的优先级,例如,例如,如果广播接收者是系统,则确定广播消息的优先级为较高的优先级;如果广播接收者是第三方应用程序,则确定广播消息的优先级为较低的优先级。

示例性的,可以将广播消息的优先级设置为三个优先级:最高优先级、次优先级和普通优先级。并规定:最高优先级的广播消息排到广播消息队列的前端,可以更快的被处理;次优先级的广播消息排在广播消息队列中最高优先级的广播消息的后面,在最高优先级的广播消息处理完之后进行处理;普通优先级的广播消息排在广播消息队列中次优先级的广播消息的后面,在最高优先级和次优先级的广播消息处理完之后进行处理;优先级相同的广播消息,按照入队顺序进行处理。

在一个实施例中,根据所述广播接收者,确定所述广播消息的优先级,可选包括:

统计所述广播接收者在预设时间内的使用频率;

根据所述使用频率,确定所述广播消息的优先级。

在确定了广播消息的广播接收者后,获取在当前时间之前的预设时间内用户对该广播接收者的使用频率,并根据使用频率确定广播消息的优先级,如果使用频率较高,则将广播消息的优先级设置为较高的优先级,从而提高了活跃应用接收广播消息的速度。

在一个实施例中,根据所述使用频率,确定所述广播消息的优先级,包括:

根据所述使用频率,确定所述使用频率所属的频率范围;

根据所述频率范围,确定所述广播消息的优先级。

可以预先建立频率范围与广播消息的优先级的对应关系。首先根据使用频率,确定该使用频率所属的频率范围,根据该频率范围及所述对应关系,可以直接确定该广播消息的优先级,可以更加快速的对使用频率高的广播接收者的广播消息进行处理,从而进一步加快了广播消息的处理速度。

在另一个实施例中,根据所述广播接收者,确定所述广播消息的优先级,包括:

如果所述广播接收者当前正在运行,则确定所述广播消息的优先级高于所述广播消息队列中的所有广播消息的优先级。

如果广播接收者是当前正在运行的应用程序,则确定所述广播消息的优先级是最高的,即高于广播消息队列中的所有广播消息的优先级。例如,微信是当前运行的应用程序,且有新的信息发送过来,则产生信息广播,而当前广播消息队列中已有很多广播消息在等待处理,则利用现有的方案只能将该信息广播按照顺序进入广播消息队列,从而该信息广播需要等待较长的时间才能被处理到,而通过本实施例的方法,确定该信息广播的优先级最高,则将该信息广播直接排列在广播消息队列的对头,可以及时进行处理,从而用户及时收到该信息。

步骤140,根据所述广播消息的优先级,确定所述广播消息在广播消息队列中的插入位置。

其中,广播消息队列按照广播消息的优先级的顺序进行排列,高优先级的广播消息排列在队头,低优先级的广播消息排列在队尾。

由于广播消息队列是按照广播消息的优先级的顺序进行排列的,则根据广播消息的优先级可以直接确定出该广播消息在广播消息队列中的插入位置。

示例性的,如果广播消息的优先级共有三级,分别为最高优先级、次优先级和最低优先级,当前的广播消息队列中只有次优先级和最低优先级的广播消息,且当前监听到的广播消息的优先级为最高优先级,则可以确定该广播消息在广播消息队列中的插入位置为队头。

在一个实施例中,根据所述广播消息的优先级,确定所述广播消息在广播消息队列中的插入位置,可选包括:

将所述广播消息的优先级与所述广播消息队列中的广播消息的优先级进行对比;

根据对比结果,确定所述广播消息在所述广播消息队列中的插入位置。

广播消息队列是按照优先级的高低顺序进行排列的,在确定了广播消息的优先级后,将该优先级与广播消息队列中的广播消息的优先级进行对比,根据对比结果,可以确定所述广播消息在广播消息队列中的插入位置,进一步提高了广播消息的处理速度。

在一个实施例中,根据对比结果,确定所述广播消息在所述广播消息队列中的插入位置,可选包括:

当所述广播消息队列中有与所述优先级相同的广播消息时,确定所述广播消息的插入位置为与所述优先级相同的广播消息之后;

当所述广播消息队列中没有与所述优先级相同的广播消息时,判断所述优先级是否高于所述广播消息队列中的所有广播消息的优先级;

如果所述优先级高于所述广播消息队列中的所有广播消息的优先级,则确定所述插入位置为所述广播消息队列的队头;

如果所述优先级不高于所述广播消息队列中的所有广播消息的优先级,则判断所述优先级是否低于所述广播消息队列中的所有广播消息的优先级;

如果所述优先级低于所述广播消息队列中的所有广播消息的优先级,则确定所述插入位置为所述广播消息的队尾;

如果所述优先级不低于所述广播消息队列中的所有广播消息的优先级,则确定所述广播消息队列中的高于所述优先级和低于所述优先级的相邻两个广播消息,并确定所述广播消息的插入位置为所述相邻两个广播消息之间。

在将广播消息的优先级与广播消息队列中的广播消息的优先级进行对比时,可以先判断广播消息队列中是否有与广播消息的优先级相同的广播消息,如果有,则可以直接根据该相同优先级的广播消息所在的位置确定所述广播消息的插入位置,确定的插入位置可以是该相同优先级的广播消息之后并近邻该相同优先级的广播消息。如果广播消息队列中没有与广播消息的优先级相同的广播消息,可以分为三种情况分别进行处理:即所述优先级高于所述广播消息队列中的所有广播消息的优先级、所述优先级低于所述广播消息队列中的所有广播消息的优先级以及所述优先级介于所述广播消息队列中的广播消息的优先级之间。通过分情况确定广播消息的优先级,可以进一步加快广播消息的处理速度。

步骤150,根据所述插入位置,将所述广播消息插入所述广播消息队列。

根据确定的插入位置,将所述广播消息插入所述广播消息队列的插入位置中。

本实施例的技术方案,通过在监听到广播发送者发出广播消息时,确定所述广播消息的广播接收者,并根据所述广播接收者确定所述广播消息的优先级,进而根据所述优先级确定所述广播消息在广播消息队列中的插入位置,将所述广播消息插入广播消息队列,由于根据优先级确定广播消息在广播消息队列中的位置,从而可以及时快速的处理高优先级的广播消息,及时快速的处理重要的广播消息,避免了系统功能异常。

图2是本发明一个实施例提供的一种广播消息排队的方法的流程图,该方法包括如下步骤:

步骤210,监听广播发送者发出的广播消息。

步骤220,在监听到广播发送者发出广播消息时,确定所述广播消息的广播接收者。

步骤230,根据所述广播接收者,确定所述广播消息的优先级。

步骤240,根据所述广播消息的优先级,确定所述广播消息在广播消息队列中的插入位置。

步骤250,根据所述插入位置,将所述广播消息插入所述广播消息队列。

步骤260,按照所述广播消息队列中的广播消息的排队顺序,识别当前的广播消息的广播接收者。

本发明实施例中,广播消息队列是根据广播消息的优先级进行排队的,广播消息队列在不断的动态变化中,在终端运行的过程中,广播消息队列在持续更新,广播消息队列中分发完毕的广播消息在广播消息队列中清除,在分发广播消息队列中的广播消息时也有可能有新的广播消息进入广播消息队列。示例性的,广播消息队列中按照广播消息的排队顺序包括广播消息1、广播消息2、广播消息3、广播消息4……广播消息100,按照广播消息队列中的广播消息的排队顺序分发其中的广播消息时,先分发广播消息1,广播消息1分发完之后分发广播消息2,以此顺序类推,直到将广播消息队列中的广播消息分发完毕。

其中,当前的广播消息可以是当前待分发的广播消息,例如:广播消息队列中按照分发的先后顺序包括广播消息1、广播消息2、广播消息3、广播消息4……广播消息100,其中广播消息1是当前正在分发的广播消息,那么广播消息2即为当前待分发的广播消息,也可以是广播消息1之前的广播消息刚分发完毕,则广播消息1是当前待分发的广播消息。广播接收者可以是安装于终端的第三方应用软件或者系统自带的应用程序。示例性的,在Android系统中,识别当前的广播消息的广播接收者时,通过ActivityManagerService在注册中心查看有哪些广播接收者订阅了接收该广播消息的广播接收器,从而确定其广播接收者。

步骤270,将所述当前的广播消息分发给该广播接收者。

通过在识别当前待分发的广播消息的广播接收者之后,再依次将该广播消息分发给各广播接收者,可以保证广播接收者对广播消息的及时响应。

本实施例的技术方案,通过在监听到广播发送者发出广播消息时,确定广播消息的广播消息的广播接收者,根据所述广播接收者确定广播消息的优先级,根据广播消息的优先级确定广播消息在广播消息队列中的插入位置,进而根据所述插入位置,将广播消息插入广播消息队列,并根据广播消息队列中广播消息的排队顺序分发其中的广播消息,从而实现了及时快速分发重要的广播消息,并可以保证广播接收者快速的响应该广播消息,避免了系统功能异常。

图3是本发明实施例提供的一种广播消息排队的装置的结构示意图,如图3所示,本实施例所述的广播消息排队的装置包括:广播消息监听模块310、广播接收者确定模块320、优先级确定模块330、插入位置确定模块340和广播消息插入模块350。

其中,广播消息监听模块310,用于监听广播发送者发出的广播消息;

广播接收者确定模块320,用于在监听到广播发送者发出广播消息时,确定所述广播消息的广播接收者;

优先级确定模块330,用于根据所述广播接收者,确定所述广播消息的优先级;

插入位置确定模块340,用于根据所述广播消息的优先级,确定所述广播消息在广播消息队列中的插入位置;

广播消息插入模块350,用于根据所述插入位置,将所述广播消息插入所述广播消息队列。

可选的,所述优先级确定模块包括:

使用频率统计单元,用于统计所述广播接收者在预设时间内的使用频率;

优先级确定单元,用于根据所述使用频率,确定所述广播消息的优先级。

可选的,所述优先级确定单元具体用于:

根据所述使用频率,确定所述使用频率所属的频率范围;

根据所述频率范围,确定所述广播消息的优先级。

可选的,所述优先级确定模块包括:

最高优先级确定单元,用于如果所述广播接收者当前正在运行,则确定所述广播消息的优先级高于所述广播消息队列中的所有广播消息的优先级。

可选的,所述插入位置确定模块包括:

优先级对比单元,用于将所述广播消息的优先级与所述广播消息队列中的广播消息的优先级进行对比;

插入位置确定单元,用于根据对比结果,确定所述广播消息在所述广播消息队列中的插入位置。

可选的,所述插入位置确定单元具体用于:

当所述广播消息队列中有与所述优先级相同的广播消息时,确定所述广播消息的插入位置为与所述优先级相同的广播消息之后;

当所述广播消息队列中没有与所述优先级相同的广播消息时,判断所述优先级是否高于所述广播消息队列中的所有广播消息的优先级;

如果所述优先级高于所述广播消息队列中的所有广播消息的优先级,则确定所述插入位置为所述广播消息队列的队头;

如果所述优先级不高于所述广播消息队列中的所有广播消息的优先级,则判断所述优先级是否低于所述广播消息队列中的所有广播消息的优先级;

如果所述优先级低于所述广播消息队列中的所有广播消息的优先级,则确定所述插入位置为所述广播消息的队尾;

如果所述优先级不低于所述广播消息队列中的所有广播消息的优先级,则确定所述广播消息队列中的高于所述优先级和低于所述优先级的相邻两个广播消息,并确定所述广播消息的插入位置为所述相邻两个广播消息之间。

可选的,还包括:

广播接收者识别模块,用于按照所述广播消息队列中的广播消息的排队顺序,识别当前的广播消息的广播接收者;

广播消息分发模块,用于将所述当前的广播消息分发给该广播接收者。

上述广播消息排队的装置可执行本发明任意实施例所提供的广播消息排队的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的广播消息排队的方法。

本发明实施例还提供了一种终端,该终端可以包括本发明任意实施例提供的广播消息排队的装置。图4为本发明实施例提供的一种终端的结构示意图,如图4所示,该终端可以包括:壳体(图中未示出)、存储器401、中央处理器(Central Processing Unit,CPU)402(又称处理器,以下简称CPU)、存储在存储器401上并可在处理器402上运行的计算机程序、电路板(图中未示出)和电源电路(图中未示出)。所述电路板安置在所述壳体围成的空间内部;所述CPU402和所述存储器401设置在所述电路板上;所述电源电路,用于为所述终端的各个电路或器件供电;所述存储器401,用于存储可在处理器上运行的计算机程序;所述CPU402通过读取并执行所述存储器401中存储的计算机程序。

该终端还包括:外设接口403、RF(Radio Frequency,射频)电路405、音频电路406、扬声器411、电源管理芯片408、输入/输出(I/O)子系统409、触摸屏412、其他输入/控制设备410以及外部端口404,这些部件通过一个或多个通信总线或信号线407来通信。

应该理解的是,图示终端400仅仅是终端的一个范例,并且终端400可以具有比图中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。

下面就本实施例提供的用于广播消息排队的终端进行详细的描述,该终端以手机为例。

存储器401,所述存储器401可以被CPU402、外设接口403等访问,所述存储器401可以包括高速随机存取存储器,还可以包括非易失性存储器,例如一个或多个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

外设接口403,所述外设接口403可以将设备的输入和输出外设连接到CPU402和存储器401。

I/O子系统409,所述I/O子系统409可以将设备上的输入输出外设,例如触摸屏412(相当于上述实施例中的屏幕)和其他输入/控制设备410,连接到外设接口403。I/O子系统409可以包括显示控制器4091和用于控制其他输入/控制设备410的一个或多个输入控制器4092。其中,一个或多个输入控制器4092从其他输入/控制设备410接收电信号或者向其他输入/控制设备410发送电信号,其他输入/控制设备410可以包括物理按钮(按压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击滚轮。值得说明的是,输入控制器4092可以与以下任一个连接:键盘、红外端口、USB接口以及诸如鼠标的指示设备。

触摸屏412,所述触摸屏412是用户终端与用户之间的输入接口和输出接口,将可视输出显示给用户,可视输出可以包括图形、文本、图标、视频等。

I/O子系统409中的显示控制器4091从触摸屏412接收电信号或者向触摸屏412发送电信号。触摸屏412检测触摸屏上的接触,显示控制器4091将检测到的接触转换为与显示在触摸屏412上的用户界面对象的交互,即实现人机交互,显示在触摸屏412上的用户界面对象可以是运行游戏的图标、联网到相应网络的图标等。值得说明的是,设备还可以包括光鼠,光鼠是不显示可视输出的触摸敏感表面,或者是由触摸屏形成的触摸敏感表面的延伸。

RF电路405,主要用于建立手机与无线网络(即网络侧)的通信,实现手机与无线网络的数据接收和发送。例如收发短信息、电子邮件等。具体地,RF电路405接收并发送RF信号,RF信号也称为电磁信号,RF电路405将电信号转换为电磁信号或将电磁信号转换为电信号,并且通过该电磁信号与通信网络以及其他设备进行通信。RF电路405可以包括用于执行这些功能的已知电路,其包括但不限于天线系统、RF收发机、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、CODEC(COder-DECoder,编译码器)芯片组、用户标识模块(Subscriber Identity Module,SIM)等等。

音频电路406,主要用于从外设接口403接收音频数据,将该音频数据转换为电信号,并且将该电信号发送给扬声器411。

扬声器411,用于将手机通过RF电路405从无线网络接收的语音信号,还原为声音并向用户播放该声音。

电源管理芯片408,用于为CPU402、I/O子系统及外设接口所连接的硬件进行供电及电源管理。

本发明实施例提供的CPU402在执行所述存储器401中存储的计算机程序时实现以下步骤:

监听广播发送者发出的广播消息;

在监听到广播发送者发出广播消息时,确定所述广播消息的广播接收者;

根据所述广播接收者,确定所述广播消息的优先级;

根据所述广播消息的优先级,确定所述广播消息在广播消息队列中的插入位置;

根据所述插入位置,将所述广播消息插入所述广播消息队列。

上述终端可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1