一种调整广播消息队列的方法、装置及终端与流程

文档序号:12824566阅读:262来源:国知局
一种调整广播消息队列的方法、装置及终端与流程

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



背景技术:

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

在android系统中,广播发送者发送的广播消息没有限制,从而广播消息在未处理前都是进入广播消息队列等候处理,在待处理的广播消息非常多的时候,等候时间较长,影响对广播消息的响应速度,引起操作不流畅。



技术实现要素:

本发明实施例提供一种调整广播消息队列的方法、装置及终端,可以提高对广播消息的响应速度,使得操作顺畅。

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

监听系统中的广播发送者是否发出广播消息;

在监听到所述广播发送者发出广播消息后,判断所述广播发送者是否是前台应用;

如果所述广播发送者是前台应用,则在将所述广播消息放入广播消息队列时进行插队处理。

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

广播消息监听模块,用于监听系统中的广播发送者是否发出广播消息;

前台应用判断模块,用于在监听到所述广播发送者发出广播消息后,判断所述广播发送者是否是前台应用;

广播消息插队模块,用于当所述广播发送者是前台应用时,在将所述广播消息放入广播消息队列时进行插队处理。

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

监听系统中的广播发送者是否发出广播消息;

在监听到所述广播发送者发出广播消息后,判断所述广播发送者是否是前台应用;

如果所述广播发送者是前台应用,则在将所述广播消息放入广播消息队列时进行插队处理。

本发明实施例,首先监听系统中的广播发送者是否发出广播消息,在监听到广播发送者发出广播消息后,判断广播发送者是否是前台应用,如果广播发送者是前台应用,则在将广播消息放入广播消息队列时进行插队处理。通过将前台应用发送的广播消息进行插队处理,可以提高对广播消息的响应速度,使得操作顺畅。

附图说明

图1是本发明实施例中的一种调整广播消息队列的方法的流程图;

图2是本发明一个实施例中的一种调整广播消息队列的方法的流程图;

图3是本发明一个实施例中的一种调整广播消息队列的方法的流程图;

图4是本发明一个实施例中的一种调整广播消息队列的方法的流程图;

图5是本发明一个实施例中的一种调整广播消息队列的方法的流程图;

图6是本发明实施例中的一种调整广播消息队列的装置的结构示意图;

图7是本发明实施例中的一种终端的结构示意图。

具体实施方式

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

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

图1是本发明实施例提供的一种调整广播消息队列的方法的流程图,本实施例可适用于对广播消息队列进行调整的情况,该方法可以由终端来执行,终端可以是智能手机、平板电脑等。如图1所示,该调整广播消息队列的方法具体包括如下步骤:

步骤110,监听系统中的广播发送者是否发出广播消息。

其中,广播发送者可以是系统和应用程序软件。应用程序软件可以是安装于手机等终端的第三方应用软件或者系统自带的应用程序,例如:安装于终端的第三方应用软件可以包括微信客户端、qq客户端、淘宝客户端和支付宝客户端等,系统自带的应用程序可以包括日历、时钟、天气和便签等。广播消息可以是系统广播和应用广播,其中,系统广播可以包括亮屏广播、息屏广播、解锁广播、网络状态变化广播、蓝牙状态变化广播、切换语言广播、切换主题广播等,应用广播可以是由应用程序软件发出的广播。

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

步骤120,在监听到广播发送者发出广播消息后,判断广播发送者是否是前台应用。

其中,前台应用可以是终端中用户正在使用操作的应用程序软件,例如:终端当前的显示界面是微信的界面,用户正在利用微信进行一系列的操作,则微信就是前台应用。

在本应用场景下,判断广播发送者是否是前台应用的方法可以是,当广播管理模块监听到有广播消息发出后,根据发出的广播消息查找该广播消息的发送者,然后判断该广播发送者是否是终端中正在使用操作的应用程序软件,即是否是前台应用。具体的,在判断该广播发送者是否是前台应用时,可以查询显示界面切换记录来进行判断。其中,显示界面切换记录是在切换显示界面时记录当前显示界面与对应的应用程序。

示例性的,在android系统中,activitymanagerservice接收到广播发送者发送的广播消息后,可以查询显示界面切换记录,从而获取终端的当前显示界面,根据当前显示界面是否是所述广播发送者的显示界面,来判断所述广播发送者是否是前台应用,即当前显示界面是所述广播发送者的显示界面时确定所述广播发送者是前台应用,当前显示界面不是所述广播发送者的显示界面时确定所述广播发送者不是前台应用。

步骤130,如果广播发送者是前台应用,则在将广播消息放入广播消息队列时进行插队处理。

在本应用场景下,在将广播消息放入广播消息队列时进行插队处理的方法可以是,将广播消息插入广播消息队列中除最后一条广播消息的任意一个广播消息后,示例性的,广播消息队列中按照分发的先后顺序包括广播消息1、广播消息2、广播消息3、广播消息4……广播消息100,将前台应用发出的广播消息进行插队处理的方式是,将其插入除广播消息100之外的任意一个广播消息后,例如插入广播消息4之后。

本实施例提供的技术方案,首先监听系统中的广播发送者是否发出广播消息,在监听到广播发送者发出广播消息后,判断广播发送者是否是前台应用,如果广播发送者是前台应用,则在将广播消息放入广播消息队列时进行插队处理。通过将前台应用发送的广播消息进行插队处理,可以提高对该广播消息的响应速度,使得操作顺畅。

本实施例提供的技术方案,将前台应用发出的广播消息插队排到广播消息队列中当前分发的广播消息之后,使得该广播消息及时的分发出去,可以提高对前台应用广播消息的响应速度,使得前台应用操作顺畅。

图2是本发明一个实施例提供的一种调整广播消息队列的方法的流程图,如图2所示,可选的,在步骤120之后,还包括:

步骤140,如果广播消息的广播发送者不是前台应用,则将广播消息排到广播消息队列中最后一条广播消息之后。

在本应用场景下,如果广播消息的广播发送者不是前台应用,可以是后台应用或系统,这时可以保持广播消息的默认排队方式,即将该广播消息排到广播队列中最后一条广播消息之后。示例性的,广播消息队列中按照分发的先后顺序包括广播消息1、广播消息2、广播消息3、广播消息4……广播消息100,若广播消息不是由前台应用发出的,则将其排在广播消息100之后。

在上述技术方案的基础上,步骤130还可通过下述方式进行实施:

将广播消息插队排到广播消息队列中当前分发的广播消息与最后一条广播消息之间。

其中,当前分发的广播消息与最后一条广播消息之间的位置可以是,最后一条广播前的任意位置。示例性的,广播消息队列中按照分发的先后顺序包括广播消息1、广播消息2、广播消息3、广播消息4……广播消息100,其中广播消息1为当前分发的广播消息,将前台应用发出的广播消息进行插队处理的方式是,将其插入除广播消息100之外的任意一个广播消息后,例如插入广播消息4之后。

本实施例的技术方案,将广播消息插队排到广播消息队列中当前分发的广播消息与最后一条广播消息之间。使得广播消息在插队后可以优先于排在该广播消息之后的广播消息进行分发,可以提高系统对广播消息的响应速度,使得前台应用操作顺畅。

或者,将广播消息插队排到广播消息队列中当前分发的广播消息与下一条广播消息之间。

将广播消息插队排到广播消息队列中当前分发的广播消息与下一条广播消息之间的方式可以是,示例性的,广播消息队列中按照分发的先后顺序包括广播消息1、广播消息2、广播消息3、广播消息4……广播消息100,其中广播消息1为当前分发的广播消息,则将广播消息插队排到广播消息1之后广播消息2之前。

本实施例的技术方案,将广播消息插队排到广播消息队列中当前分发的广播消息与下一条广播消息之间。使得广播消息在当前分发的广播消息分发完之后,就可以被分发,可以提高系统对广播消息的响应速度,使得前台应用操作顺畅。

图3是本发明一个实施例提供的一种调整广播消息队列的方法的流程图,可选的,如图3所示,步骤130可通过下述方式进行实施:

步骤131,确定广播发送者发送的已入队广播消息在广播消息队列中的位置。

其中,广播发送者发送的已入队广播消息可以是一个或多个,在本应用场景下,确定广播发送者发送的已入队广播消息在广播消息队列中的位置的方法可以是,若广播消息队列中只包含一个该广播发送者发送的已入队广播消息,则确定该已入队广播消息的位置。若广播消息队列中包含多个广播发送者发送的已入队广播消息,则确定在广播消息队列中排在最后的已入队广播消息的位置,示例性的,广播消息队列中按照分发的先后顺序包括广播消息1、广播消息2、广播消息3、广播消息4……广播消息100,其中,广播消息3、广播消息20和广播消息31这三个广播消息为广播发送者发送的已入队广播消息,则只需确定广播消息31的位置。

步骤132,根据位置,将广播消息插队排到广播消息队列中。

本应用场景下,若广播消息队列中只包含一个广播发送者发送的已入队广播消息,则将广播消息插队排到该已入队广播消息位置后面相邻的位置。若广播消息队列中包含多个广播发送者发送的已入队广播消息,则将广播消息插队到排在最后的已入队广播消息的位置后面相邻的位置,示例性的,广播消息队列中按照分发的先后顺序包括广播消息1、广播消息2、广播消息3、广播消息4……广播消息100,其中,广播消息3、广播消息20和广播消息31这三个广播消息为广播发送者发送的已入队广播消息,则将广播消息插队排到广播消息31后面相邻的位置。

本实施例的技术方案,确定广播发送者发送的已入队广播消息在广播消息队列中的位置,根据位置,将广播消息插队排到广播消息队列中。使得广播消息排在广播发送者已入队广播消息之后,保证广播发送者发送的多个广播消息按发送的先后顺序进行分发,提高系统的可靠性。

图4是本发明一个实施例提供的一种调整广播消息队列的方法的流程图,如图4所示,可选的,在步骤130或步骤140之后,还包括:

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

其中,广播消息队列可以是未被插队的广播消息队列或被插队后形成的新的广播消息队列,广播消息队列是动态变化的,在终端运行的过程中,广播消息队列在持续更新,广播消息队列中分发完毕的广播消息在广播消息队列中清除,在分发广播消息队列中的广播消息时也有可能有新的广播消息进入广播消息队列。示例性的,广播消息队列中按照广播消息的排队顺序包括广播消息1、广播消息2、广播消息3、广播消息4……广播消息100,按照广播消息队列中的广播消息的排队顺序分发其中的广播消息时,先分发广播消息1,广播消息1分发完之后分发广播消息2,以此顺序类推,直到将广播消息队列中的广播消息分发完毕。当前的广播消息可以是当前待分发的广播消息,例如:广播消息队列中按照分发的先后顺序包括广播消息1、广播消息2、广播消息3、广播消息4……广播消息100,其中广播消息1是当前正在分发的广播消息,那么广播消息2即为当前待分发的广播消息。广播接收者可以是安装于终端的第三方应用软件或者系统自带的应用程序。在本应用场景下,识别当前的广播消息的广播接收者的方法可以是,通过activitymanagerservice在注册中心查看有哪些广播接收者订阅了接收该广播消息的广播接收器,从而确定其广播接收者。示例性的,表1列出了三组广播消息与广播接收者的对应关系。

表1

如表1所示,广播消息1、广播消息2和广播消息3分别具有各自对应的广播接收者。

步骤160,将当前的广播消息分发给广播接收者。

在本应场景下,当待分发广播消息的前一个广播消息分发完之后,广播管理模块开始分发该广播消息,将其按照顺序分发给其对应的接收者。示例性的,以表1为例,假设当前的广播消息为广播消息1,则将广播消息1依次发送给应用a、应用b、应用c、应用d和应用e。

图5是本发明一个实施例提供的一种调整广播消息队列的方法的流程图,作为对上述实施例的进一步说明,包括:

步骤201,监听系统中的广播发送者是否发出广播消息。终端在运行过程中,广播管理模块时刻在监听每个广播发送者的动态,检测其收发广播消息的情况。

步骤202,在监听到广播发送者发出广播消息后,判断广播发送者是否是前台应用。

步骤203,如果广播发送者是前台应用,将广播消息插队排到广播消息队列中当前分发的广播消息与下一条广播消息之间。

步骤204,按照广播消息队列中的广播消息的排队顺序,识别当前的广播消息的广播接收者。将前台应用发出的广播消息插队排列到广播消息队列中当前分发的广播消息之后形成新的广播消息队列,广播管理模块识别当前待分发的广播消息的广播接收者队列。

步骤205,将当前的广播消息分发给广播接收者,即将广播消息分发给其对应的接收者。

本实施例提供的技术方案,如果广播消息是前台应用发出的,则将该广播消息插队排到广播消息队列中当前分发的广播消息之后,然后按照广播消息队列中的广播消息的排队顺序,识别当前的广播消息的广播接收者,最后将当前的广播消息分发给广播接收者,使终端优选分发前台应用的广播消息,可以提高对广播消息的响应速度,使得操作顺畅。

图6本发明实施例提供的一种调整广播消息队列的装置的结构示意图,如图6所示,该调整广播消息队列的装置包括:广播消息监听模块310,前台应用判断模块320,广播消息插队模块330。

广播消息监听模块310,用于监听系统中的广播发送者是否发出广播消息;

前台应用判断模块320,用于在监听到广播发送者发出广播消息后,判断广播发送者是否是前台应用;

广播消息插队模块330,用于当广播发送者是前台应用时,在将广播消息放入广播消息队列时进行插队处理。

优选的,还包括:

广播消息排队模块,用于如果广播消息的广播发送者不是前台应用,则将广播消息排到广播消息队列中最后一条广播消息之后。

优选的,广播消息插队模块330,具体用于:

确定所述广播发送者发送的已入队广播消息在广播消息队列中的位置;

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

优选的,广播消息插队模块330,具体用于:

将所述广播消息插队排到广播消息队列中当前分发的广播消息与最后一条广播消息之间;或

将所述广播消息插队排到广播消息队列中当前分发的广播消息与下一条广播消息之间。

优选的,还包括:

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

广播消息分发模块,用于将当前的广播消息分发给广播接收者。上述调整广播消息队列的装置可执行本发明任意实施例所提供的调整广播消息队列的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的调整广播消息队列的方法。

本发明实施例还提供了一种终端,该终端可以包括本发明任意实施例提供的调整广播消息队列的装置。

图7为本发明实施例提供的一种终端的结构示意图,如图7所示,该终端可以包括:壳体(图中未示出)、存储器701、中央处理器(centralprocessingunit,cpu)702(又称处理器,以下简称cpu)、存储在存储器701上并可在处理器702上运行的计算机程序、电路板(图中未示出)和电源电路(图中未示出)。所述电路板安置在所述壳体围成的空间内部;所述cpu702和所述存储器701设置在所述电路板上;所述电源电路,用于为所述终端的各个电路或器件供电;所述存储器701,用于存储可在处理器上运行的计算机程序;所述cpu802通过读取并执行所述存储器701中存储的计算机程序。

所述终端还包括:外设接口703、rf(radiofrequency,射频)电路705、音频电路706、扬声器711、电源管理芯片708、输入/输出(i/o)子系统709、触摸屏712、其他输入/控制设备710以及外部端口704,这些部件通过一个或多个通信总线或信号线707来通信。

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

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

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

外设接口703,所述外设接口703可以将设备的输入和输出外设连接到cpu802和存储器701。

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

其中,按照触摸屏的工作原理和传输信息的介质分类,触摸屏712可以为电阻式、电容感应式、红外线式或表面声波式。按照安装方式分类,触摸屏712可以为:外挂式、内置式或整体式。按照技术原理分类,触摸屏712可以为:矢量压力传感技术触摸屏、电阻技术触摸屏、电容技术触摸屏、红外线技术触摸屏或表面声波技术触摸屏。

触摸屏712,所述触摸屏712是用户终端与用户之间的输入接口和输出接口,将可视输出显示给用户,可视输出可以包括图形、文本、图标、视频等。可选的,触摸屏712将用户在触屏幕上触发的电信号(如接触面的电信号),发送给处理器702。

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

rf电路705,主要用于建立手机与无线网络(即网络侧)的通信,实现手机与无线网络的数据接收和发送。例如收发短信息、电子邮件等。

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

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

电源管理芯片708,用于为cpu702、i/o子系统及外设接口所连接的硬件进行供电及电源管理。

在本实施例中,中央处理器702在执行所述存储器701中存储的计算机程序时实现以下步骤:

监听系统中的广播发送者是否发出广播消息;

在监听到广播发送者发出广播消息后,判断广播发送者是否是前台应用;

如果广播发送者是前台应用,则在将广播消息放入广播消息队列时进行插队处理。

进一步地,还包括:

如果广播消息的广播发送者不是前台应用,则将广播消息排到广播消息队列中最后一条广播消息之后。

进一步地,在将广播消息放入广播消息队列时进行插队处理,包括:

确定所述广播发送者发送的已入队广播消息在广播消息队列中的位置;

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

进一步地,在将广播消息放入广播消息队列时进行插队处理,包括:

将所述广播消息插队排到广播消息队列中当前分发的广播消息与最后一条广播消息之间;或

将所述广播消息插队排到广播消息队列中当前分发的广播消息与下一条广播消息之间。

进一步地,在将广播消息放入广播消息队列时进行插队处理之后,还包括:

按照广播消息队列中的广播消息的排队顺序,识别当前的广播消息的广播接收者;

将当前的广播消息分发给广播接收者。

需要说明的是,终端还可以包括摄像头、蓝牙模块等,在此不再赘述。

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

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

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