CN109814954A - 推送消息接收方法、装置、存储介质和计算机设备 - Google Patents
推送消息接收方法、装置、存储介质和计算机设备 Download PDFInfo
- Publication number
- CN109814954A CN109814954A CN201711166342.0A CN201711166342A CN109814954A CN 109814954 A CN109814954 A CN 109814954A CN 201711166342 A CN201711166342 A CN 201711166342A CN 109814954 A CN109814954 A CN 109814954A
- Authority
- CN
- China
- Prior art keywords
- application program
- push
- service process
- wake
- push 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
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种推送消息接收方法、装置、存储介质和计算机设备,包括:通过SDK监听通过多种唤醒方式发起的唤醒信号;在监听到通过任意一种所述唤醒方式发起的唤醒信号时,通过所述SDK查询接入所述SDK的应用程序所对应的推送服务进程;当未查询到所述应用程序所对应的推送服务进程时,启动与所述应用程序相应的推送服务进程;通过所述推送服务进程接收推送消息。本申请提供的方案提高了推送消息的到达率。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种推送消息接收方法、装置、存储介质和计算机设备。
背景技术
随着计算机技术的发展,终端的功能越来越多,用户在使用过程中,一般会在终端上安装大量的应用程序。终端在运行某个应用程序的过程中,该应用程序所对应的后台服务器通常会推送消息给终端。
在传统技术中,应用程序相应的、用于接收推送消息的推送服务进程在运行过程中,通常会被终端的操作系统在清理内存时结束运行。而推送服务进程结束运行后,会导致终端无法接收到推送消息,从而导致推送消息到达率低下。
发明内容
基于此,有必要针对目前推送消息到达率比较低的问题,提供一种推送消息接收方法、装置、存储介质和计算机设备。
一种推送消息接收方法,包括:
通过SDK监听通过多种唤醒方式发起的唤醒信号;
在监听到通过任意一种所述唤醒方式发起的唤醒信号时,通过所述SDK查询接入所述SDK的应用程序所对应的推送服务进程;
当未查询到所述应用程序所对应的推送服务进程时,启动与所述应用程序相应的推送服务进程;
通过所述推送服务进程接收推送消息。
一种推送消息接收装置,包括:
监听模块,用于通过SDK监听通过多种唤醒方式发起的唤醒信号;
查询模块,用于在监听到通过任意一种所述唤醒方式发起的唤醒信号时,通过所述SDK查询接入所述SDK的应用程序所对应的推送服务进程;
启动模块,用于当未查询到所述应用程序所对应的推送服务进程时,启动与所述应用程序相应的推送服务进程;
接收模块,用于通过所述推送服务进程接收推送消息。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:
通过SDK监听通过多种唤醒方式发起的唤醒信号;
在监听到通过任意一种所述唤醒方式发起的唤醒信号时,通过所述SDK查询接入所述SDK的应用程序所对应的推送服务进程;
当未查询到所述应用程序所对应的推送服务进程时,启动与所述应用程序相应的推送服务进程;
通过所述推送服务进程接收推送消息。
一种计算机设备,包括存储器和处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:
通过SDK监听通过多种唤醒方式发起的唤醒信号;
在监听到通过任意一种所述唤醒方式发起的唤醒信号时,通过所述SDK查询接入所述SDK的应用程序所对应的推送服务进程;
当未查询到所述应用程序所对应的推送服务进程时,启动与所述应用程序相应的推送服务进程;
通过所述推送服务进程接收推送消息。
上述推送消息接收方法、装置、存储介质和计算机设备,提供了一种可供各种应用程序接入的通用的开发工具,这样即可统一利用该SDK来监听通过多种唤醒方式发起的唤醒信号,在监听到通过任意一种唤醒方式发起的唤醒信号时,即可触发SDK来查询接入自身的应用程序所对应的推送服务进程是否还在运行,进而在发现与应用程序相应的推送服务进程已结束运行时,即可自动启动与应用程序相应的推送服务进程,以保证有运行着的推送服务进程来接收推送消息,从而提高了推送消息的到达率。
附图说明
图1为一个实施例中推送消息接收方法的应用环境图;
图2为一个实施例中推送消息接收方法的流程示意图;
图3为一个实施例中终端亮屏时的界面示意图;
图4A为一个实施例中展示推送消息时的界面示意图;
图4B为另一个实施例中展示推送消息时的界面示意图;
图4C为另一个实施例中展示推送消息时的界面示意图;
图5为另一个实施例中推送消息接收方法的流程示意图;
图6为一个实施例中推送服务进程唤醒和维持的原理示意图;
图7为一个实施例中推送消息接收和展示的原理示意图;
图8为一个实施例中SDK的原理示意图;
图9为一个实施例中推送消息接收装置的模块结构图;
图10为另一个实施例中推送消息接收装置的模块结构图;
图11为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1为一个实施例中推送消息接收方法的应用环境图。参照图1,该推送消息接收方法应用于推送消息接收系统。该推送消息接收系统包括终端110和服务器120。其中,服务器120可包括终端110对应的厂商服务器121,终端110上运行的各应用程序各自对应的服务器122、123…等。终端110用于执行该推送消息接收方法。终端110具体可以是移动终端,移动终端具体可以包括手机、平板电脑、个人数字助理或者穿戴式设备等中的至少一种。服务器120具体可以是独立的服务器,也可以是多个独立的服务器组成的服务器集群。
图2为一个实施例中推送消息接收方法的流程示意图。本实施例主要以该方法应用于上述图1中的终端110来举例说明。参照图2,该推送消息接收方法具体包括如下步骤:
S202,通过SDK监听通过多种唤醒方式发起的唤醒信号。
其中,SDK是可供各应用程序接入且通用的软件开发工具包(SDK,SoftwareDevelopment Kit)。应用程序开发人员可基于该SDK进行应用程序开发。基于该SDK开发的应用程序即为即为接入该SDK,从而可通过该SDK执行指定操作。在一个实施例中,终端可以是基于安卓(android)操作系统的终端。
唤醒方式是发起唤醒信号所通过的途径。唤醒信号是用于触发SDK执行指定操作的信号。唤醒信号可根据不同的唤醒方式具有不同的数据形态。唤醒信号也可以是根据统一的数据格式,将不同的唤醒方式发起的不同数据形态的信号处理得到的特定数据形态的信号。
在一个实施例中,步骤S202中的多种唤醒方式包括操作系统唤醒方式、定时唤醒方式、应用程序定向唤醒方式和应用程序非定向唤醒方式中的至少两种。
其中,操作系统唤醒方式包括操作系统广播唤醒方式和操作系统账号同步唤醒方式。具体地,广播唤醒方式是利用终端操作系统在特定的系统事件发生时会发起响应广播信号,从而将响应广播信号作为唤醒信号的唤醒方式。特定的系统事件包括终端操作系统启动(终端开机)事件、扩展存储器(SD卡,Secure Digital Memory Card)的挂载与卸载事件、应用程序的安装与卸载事件以及终端屏幕的亮屏与锁屏事件等。操作系统账号同步唤醒方式是利用终端操作系统会定时发送信号来唤醒账号更新服务,从而将该唤醒账号更新服务的信号作为唤醒信号的唤醒方式。
定时唤醒方式是利用预设定时器设置定时提醒信号,从而将该定时提醒信号作为唤醒信号的唤醒方式。在安卓(android)操作系统的终端,具体可通过AlarmManager设置一个定时器,从而发送定时提醒信号。应用程序定向唤醒方式是利用应用程序在启动推送服务进程时,会发起指向特定应用程序的启动信号,从而将该启动信号作为唤醒信号的唤醒方式。应用程序非定向唤醒方式是利用应用程序在启动推送服务进程时,会发起应用程序的启动信号,从而将该信号作为唤醒信号的唤醒方式。
可以理解的是,这多种唤醒方式之间相互独立,这样终端在监听通过多种唤醒方式发起的唤醒信号时,可尽可能地监听到尽可能多的唤醒信号,以便达到尽可能多的推送服务进程活跃维持。
S204,在监听到通过任意一种唤醒方式发起的唤醒信号时,通过SDK查询接入SDK的应用程序所对应的推送服务进程。
其中,进程是操作系统进行资源分配和调度的基本单元,是操作系统结构的基础。推送服务进程是应用程序推送服务所在的进程。
SDK中可存储有接入该SDK的各应用程序所对应的应用程序标识。应用程序标识用于唯一标识一个应用程序。通常情况下,应用程序所对应的推送服务进程的进程标识,可包含该应用程序所对应的应用程序标识。SDK可比较进程标识和应用程序标识,来查询接入SDK的应用程序所对应的推送服务进程。
具体地,终端在通过SDK在监听到通过任意一种唤醒方式发起的唤醒信号时,可即刻通过SDK查询接入应用程序标识列表,继而确定接入该SDK的应用程序。SDK可再查看终端中正在运行的进程列表,检查接入该SDK的应用程序所对应的推送服务进程是否存在于该进程列表中。
可以理解的是,SDK在每监听到任意一种唤醒方式发起的唤醒信号时,即触发SDK进行相应的查询等操作,保证了SDK能够有较为密集的操作唤醒频率。
在一个实施例中,SDK可被配置为根据监听到的唤醒信号周期性执行查询操作。具体地,SDK可在一个周期内监听到通过任意一种唤醒方式发起的唤醒信号时,在周期时间点触发执行查询操作。举例说明,假假设周期为1分钟,那么在SDK开始工作起0-1分钟内,若监听到通过任意一种唤醒方式发起的唤醒信号,则在开始工作起1分钟时执行查询操作,若没有则不执行查询操作;在SDK开始工作1-2分钟内,若监听到通过任意一种唤醒方式发起的唤醒信号,则在开始工作2分钟时执行查询操作,若没有则不执行查询操作,以此类推。
在一个实施例中,SDK还可对记录各种唤醒方式和唤醒信号形成唤醒日志,已根据唤醒日志动态调整唤醒方式中涉及的变量。这里的变量是指可人工调整的参数。比如定时唤醒方式中定时器的定时周期。举例说明,假设定时唤醒方式中定时器设置了定时周期(假设为4分钟)。那么理论上,操作系统每4分钟就会发送一个定时提醒信号,SDK会对这个信号做记录和统计。而当操作系统休眠或者进程停止运行后,这个信号很有可能会丢失或者周期延长。这时便可动态调节定时周期,以便在终端耗电、进程存活以及及时接收推送消息上做到平衡。
S206,当未查询到应用程序所对应的推送服务进程时,启动与应用程序相应的推送服务进程。
具体地,SDK在操作系统的进程列表中查找到接入该SDK的应用程序所对应的推送服务进程时,即判断接入该SDK的应用程序所对应的推送服务进程此时正在运行,处于保活状态,可以接收应用程序所对应的服务器下发的推送消息。
SDK在操作系统的进程列表中未查找到接入该SDK的应用程序所对应的推送服务进程时,即判断接入该SDK的应用程序所对应的推送服务进程此时已结束运行,那么此时便无法接收应用程序所对应的服务器下发的推送消息。SDK则可通知操作系统重新启动与应用程序相应的推送服务进程,以保证有运行着的推送服务进程来接收推送消息。
S208,通过推送服务进程接收推送消息。
其中,推送消息是应用程序对应的服务器自动发送到应用程序客户端的消息。推送消息是可以在操作系统集中展示的提示信息。当服务器有新消息时,会将该新消息作为推送消息推送至应用程序客户端。
具体地,终端上安装的应用程序所对应的推送服务进程在启动后,可建立该应用程序与该应用程序所对应的服务器之间的数据传输通道。推送服务进程可定时向该应用程序所对应的服务器发送心跳数据包,以通知该服务器该应用程序需要保持与服务器之间的数据传输通道,从而推送服务进程可通过该数据传输通道接收推送消息。其中,心跳数据包是推送服务进程向服务器通知推送服务进程状态的自定义数据包。
终端上安装的应用程序所对应的推送服务进程在启动后,也可定时向该应用程序所对应的服务器发送请求,以频繁请求的方式来保持应用程序和应用程序所对应的服务器之间的连接。推送服务进程在向服务器发送请求时,若服务器有需要下发的推送消息,即在此次轮询中下发推送消息,若服务器没有需要下发的推送消息,即在此次轮询中返回空数据。
其中,推送服务进程向该应用程序所对应的服务器发送心跳数据包,以及向该应用程序所对应的服务器发送请求的时间点,可以是SDK在监听到通过任意一种唤醒方式发起的唤醒信号时,通知持续运行着的推送服务进程或者重新启动的推送服务进程执行发送心跳数据包或请求的操作。
上述推送消息接收方法,提供了一种可供各种应用程序接入的通用的开发工具,这样即可统一利用该SDK来监听通过多种唤醒方式发起的唤醒信号,在监听到通过任意一种唤醒方式发起的唤醒信号时,即可触发SDK来查询接入自身的应用程序所对应的推送服务进程是否还在运行,进而在发现与应用程序相应的推送服务进程已结束运行时,即可自动启动与应用程序相应的推送服务进程,以保证有运行着的推送服务进程来接收推送消息,从而提高了推送消息的到达率。
在一个实施例中,当多种唤醒方式包括应用程序定向唤醒方式时,该推送消息接收方法还包括:在启动推送服务进程时,通过推送服务进程相应的应用程序发起指向目标应用程序标识的唤醒信号。S204包括:在检测到通过应用程序定向唤醒方式发起的唤醒信号时,则通过SDK提取唤醒信号指向的目标应用程序标识;通过SDK,查询接入SDK、且与目标应用程序标识对应的应用程序所对应的推送服务进程。
具体地,SDK可预先配置有统一的唤醒协议。各应用程序在接入该SDK后,可根据该唤醒协议设置定向唤醒的应用程序。比如,应用程序A和应用程序B均接入SDK,那么应用程序A可设置为在相应的推送服务进程启动后,定向唤醒启动应用程序B相应的推送服务进程。
终端上安装的应用程序所对应的推送服务进程,可以是该应用程序被用户启动时,操作系统为该应用程序启动的推送服务进程;也可以是该应用程序未被用户启动,由SDK通知操作系统为该应用程序启动的推送服务进程。那么,可以理解的是,当一个应用程序所对应的推送服务进程被启动时,该应用程序可发起指向目标应用程序标识的唤醒信号。这时,SDK可提取唤醒信号指向的目标应用程序标识,并查询接入SDK、且与目标应用程序标识对应的应用程序所对应的推送服务进程是否存在,以便在目标应用程序标识对应的应用程序所对应的推送服务进程存在时继续维持,在目标应用程序标识对应的应用程序所对应的推送服务进程不存在时,通知操作系统重新启动。
在本实施例中,提供了应用程序之间定向唤醒推送服务进程的方式,用户可自由设置定向唤醒需要接收推送消息的应用程序的推送服务,提高了SDK的实用性。而且丰富了推送服务进程的唤醒方式,从而提高了推送消息的到达率。
在一个实施例中,该推送消息接收方法还包括:确定推送服务进程所对应的应用程序;当确定的应用程序相应的应用程序通知栏存在时,则建立推送服务进程与应用程序通知栏的第一绑定关系,以通过第一绑定关系维持推送服务进程。
其中,应用系统通知栏是与应用程序对应的用于展示信息的组件。在安卓(android)操作系统中,应用系统通知栏通过Activity活动组件实现。可以理解的是,终端或应用程序可提供用户选择开启或者隐藏应用系统通知栏的权限。在用户允许开启应用系统通知栏,也就是应用程序相应的应用程序通知栏存在时,可通过将后台进程与应用程序通知栏绑定,以使该后台线程转变为前台进程,从而避免操作系统在清理内存时结束后台进程的运行。
具体地,终端通过SDK在监听到通过任意一种唤醒方式发起的唤醒信号,并查询接入SDK的应用程序所对应的推送服务进程后,对于每一个查询到的推送服务进程,SDK可检查该推送服务进程是否与其所对应的应用程序相应的应用程序通知栏绑定,若已绑定则等待下次唤醒信号。若未绑定,则确定其所对应的应用程序相应的应用程序通知栏是否存在,若存在,则将其与其所对应的应用程序相应的应用程序通知栏绑定,使得推送服务进程转变为前台进程,从而避免操作系统在清理内存时结束后台进程的运行。
对于每一个重新启动的推送服务进程,SDK可确定其所对应的应用程序相应的应用程序通知栏是否存在,若存在,则将其与其所对应的应用程序相应的应用程序通知栏绑定,使得推送服务进程转变为前台进程,从而避免操作系统在清理内存时结束后台进程的运行。
在本实施例中,通过将推送服务进程与应用程序通知栏绑定,从而将推送服务进程由后台线程转变为前台进程,从而避免操作系统在清理内存时结束后台进程的运行,从而提高了推送服务进程的存活时长。
在一个实施例中,该推送消息接收方法还包括:当确定的应用程序相应的应用程序通知栏不存在时,则创建通知组件并启动中间进程;将中间进程和推送服务进程均绑定至通知组件,使得在结束中间进程时触发删除通知组件并维持推送服务进程。
其中,中间进程是用于过渡的进程,可以是。通知组件是用于展示信息的组件。在安卓(android)操作系统中,通知组件可通过Activity活动组件实现。在一个实施例中,通知组件可以是空白通知组件。空白通知组件的像素值可被设置为与通知组件所展示区域相同的像素值,从而使得空白通知组件为透明状态,自然人肉眼不可见。
具体地,终端在通过SDK,确定推送服务进程所对应的应用程序相应的应用程序通知栏不存在时,可通知操作系统创建通知组件并启动中间进程,SDK将中间进程和推送服务进程均绑定至通知组件,这样中间进程和推送服务进程均因与通知组件绑定而转变为前台进程,从而避免操作系统在清理内存时结束后台进程的运行。SDK可再结束中间进程,并通过结束中间进程触发删除通知组件,但通知组件的删除并不影响推送服务进程,此时推送服务进程仍未前台进程并得到维持。
在本实施例中,在应用程序通知栏被用户禁止开启时,通过通知组件和中间进程的中转,将推送服务进程由后台线程转变为前台进程,从而避免操作系统在清理内存时结束后台进程的运行,从而提高了推送服务进程的存活时长。
在一个实施例中,该推送消息接收方法还包括:获取用于创建应用程序通知栏的触发指令;响应于触发指令,通过SDK获取系统通知栏的展示样式;通过SDK按照展示样式创建应用程序通知栏。
其中,触发指令是触发创建应用程序通知栏的计算机程序。终端可检测预定义的触发操作,在检测到该触发操作时触发相应的触发指令。触发操作可以是对界面中控件的操作,比如对控件的触控操作或者光标点击操作等。触发操作也可以是对预定义的物理按钮的点击,或者在显示应用程序的界面时触发的晃动操作或者语音输入操作等。
展示样式是系统通知栏在展示时所依据的样式数据。样式数据可以包括系统通知栏在界面中的位置、尺寸、颜色、字体和字号等属性。
具体地,终端在检测到触发指令,响应于触发指令通知SDK获取系统通知栏的展示样式,然后按照系统通知栏的展示样式绘制应用程序通知栏。举例说明,部分终端的系统通知栏整体是白底,部分终端的系统通知栏是整体黑底,SDK在绘制应用程序通知栏时,根据当前终端系统通知栏的颜色进行绘制,以便与终端的通知栏整体风格保持一致。
在本实施例中,在绘制应用程序通知栏时,保持应用程序通知栏与终端系统通知栏的展示样式一致,使得应用程序通知栏适配不同的终端,提高了SDK的实用性。
在一个实施例中,该推送消息接收方法还包括:获取锁屏指令;响应于锁屏指令,通过SDK创建预设尺寸的悬浮窗口;建立推送服务进程与预设尺寸的悬浮窗口的第二绑定关系,以通过第二绑定关系维持推送服务进程。
其中,锁屏指令是用于锁定终端的计算机程序。终端可检测预定义的触发操作,在检测到该触发操作时触发相应的锁屏指令。触发操作可以是对界面中控件的操作,比如对控件的触控操作或者光标点击操作等。触发操作也可以是对预定义的物理按钮的点击,或者在显示应用程序的界面时触发的晃动操作或者语音输入操作等。终端还可监听锁屏广播信号,在监听到锁屏广播信号时触发锁屏指令。
悬浮窗口是悬浮于终端屏幕的窗口。悬浮窗口的尺寸与位置均可自定义调整。在本实施例中,预设尺寸的悬浮窗口是预设像素单元数量的悬浮窗口。预设像素单元数量具体可以是1-10个像素单元。可以理解的是,这里以像素为单位设置悬浮窗口的目的是为了使得悬浮窗口对用户肉眼不可见,这样在锁屏后,在终端屏幕上展示用户肉眼不可见的预设尺寸的悬浮窗口,不影响用户正常使用终端,而且可尽可能减少终端耗电。在安卓(android)操作系统中,预设尺寸的悬浮窗口可通过Activity活动组件实现。
具体地,终端在检测到锁屏指令后,通过SDK创建预设尺寸的悬浮窗口,并建立推送服务进程与预设尺寸的悬浮窗口的绑定关系,使得推送服务进程在终端锁屏后转变为前台进程,从而避免操作系统在清理内存时结束后台进程的运行。这样推送服务进程即可在锁屏过程中接收推送消息。
可以理解的是,这里的第二绑定关系与上文中第一绑定关系中的“第一”和“第二”仅用于将第一个绑定关系与另一个绑定关系区分。
在本实施例中,在终端锁屏后,通过创建预设尺寸的悬浮窗口,再将推送服务进程与悬浮窗口绑定,从而将推送服务进程由后台线程转变为前台进程,从而避免操作系统在清理内存时结束后台进程的运行,从而提高了推送服务进程的存活时长。
在一个实施例中,该推送消息接收方法还包括:检测亮屏指令;根据亮屏指令,查询通过推送服务进程在锁屏时接收的推送消息;展示查询到的推送消息。
其中,亮屏指令是用于点亮终端屏幕的计算机程序。终端可检测预定义的触发操作,在检测到该触发操作时触发相应的亮屏指令。触发操作可以是对界面中控件的操作,比如对控件的触控操作或者光标点击操作等。触发操作也可以是对预定义的物理按钮的点击,或者在显示应用程序的界面时触发的晃动操作或者语音输入操作等。终端还可监听亮屏广播信号,在监听到亮屏广播信号时触发亮屏指令。
具体地,终端在检测到亮屏指令后,可通过SDK查询通过各推送服务进程在锁屏时接收到的推送消息,将各推送消息按照接收时序展示。终端可通过各应用程序在当前视图层的顶层视图层绘制可视悬浮窗口,将各自接收到的推送消息展示在各自绘制的可视悬浮窗口中展示。其中,可视悬浮窗口的展示样式可与终端系统通知栏的展示样式一致。可视悬浮窗口是尺寸较大肉眼可视的悬浮窗口。
举例说明,图3示出了一个实施例中终端亮屏时的界面示意图。参考图3,可以看到在终端亮屏时,可展示接收到的推送消息310。
在本实施例中,在终端亮屏时,即将终端锁屏期间接收到的推送消息进行展示,这样即可及时地将推送消息展示给用户,提高用户对推送消息的感知度。
在一个实施例中,通过推送服务进程接收推送消息,包括:通过推送服务进程接收应用程序相应的服务器直接下发的推送消息。该推送消息接收方法还包括:通过操作系统的推送服务进程,接收通过厂商服务器转发的、且由应用程序所对应的服务器下发的推送消息。
具体地,应用程序所对应的服务器在需要下发推送消息时,可查看安装了该应用程序的终端上,该应用程序相应的推送服务进程是否保持连接,即该推送服务进程是否持续发送心跳数据包或请求。若应用程序所对应的服务器与终端上该应用程序相应的推送服务进程保持连接,则直接将推送消息通过服务器与推送服务进程之间的连接通道下发至推送服务器。
若应用程序所对应的服务器与终端上该应用程序相应的推送服务进程连接中断,应用程序所对应的服务器可将推送消息发送至终端对应的厂商服务器,并通知厂商服务器转发推送消息至终端。厂商服务器则将推送消息下发至终端操作系统的推送服务进程,操作系统的推送服务进程在接收到推送消息后,可提取推送消息中携带的应用程序标识,并在展示推送消息时,按照该应用程序标识对应的展示样式展示推送消息。
在本实施例中,提供了多种接收推送消息的方式,进一步提高了推送消息的到达率。
在一个实施例中,该推送消息接收方法还包括:通过接收推送消息的推送服务进程所对应的第一应用程序,提取推送消息中携带的第二应用程序标识;当第一应用程序与第二应用程序标识匹配时,则通过第一应用程序按照与第一应用程序对应的显示样式展示推送消息。
具体地,推送服务进程在接收到推送消息后,该推送服务进程所对应的第一应用程序可提取该推送消息中携带的第二应用程序标识,以查看该推送消息是本应用程序的推送消息还是其他应用程序的推送消息。当第一应用程序判定第二应用程序标识为本应用程序的标识时,即可在满足推送消息展示的条件下,按照与本应用程序对应的显示样式展示推送消息。
其中,推送消息展示的条件具体可以是终端解锁后预设时长、终端接入或者断开与外部设备的连接时(接入USB、开始充电或者结束充电)或者终端启动应用程序等。
在一个实施例中,通过第一应用程序按照与第一应用程序对应的显示样式展示推送消息,包括:通过第一应用程序在当前视图层的顶层视图层绘制可视悬浮窗口;通过第一应用程序按照与第一应用程序对应的显示样式,在可视悬浮窗口中展示推送消息。
其中,视图层是用于进行页面内容绘制的图层。悬浮窗口是可以定制显示位置和显示尺寸的窗口。可视悬浮窗口是尺寸较大肉眼可视的悬浮窗口。悬浮窗口所在视图层始终为顶层视图层。悬浮窗口可为矩形,也可为圆形或者不规则形状。
具体地,终端可通过第一应用程序在当前视图层的顶层视图层绘制可视悬浮窗口,再通过第一应用程序按照与第一应用程序对应的显示样式,在可视悬浮窗口中展示推送消息。
举例说明,图4A示出了一个实施例中展示推送消息时的界面示意图。参考图4A,可以看到在终端在通过应用程序A的推送服务进程接收到属于应用程序A的推送消息时,可通过悬浮窗口按照应用程序A的显示样式展示接收到的推送消息410。
在本实施例中,通过悬浮窗口的方式展示推送消息,保证用户在使用终端时,能够及时查看到推送消息。
上述实施例中,将接收到的推送消息以所属应用程序所对应的显示样式进行展示,提高了不同应用程序之间推送消息的区分度,从而使得用户可快速定位意图查看的应用程序的推送消息。
在一个实施例中,该推送消息接收方法还包括:当第一应用程序与第二应用程序标识不匹配时,则通过第一应用程序确定第二应用程序标识对应的第二应用程序;通过第一应用程序,按照与第二应用程序对应的显示样式展示推送消息。
具体地,当终端通过第一应用程序判定第二应用程序标识不是本应用程序的标识时,可通过第一应用程序确定第二应用程序标识所对应的第二应用程序,这样即可在满足推送消息展示的条件下,按照与第二应用程序对应的显示样式展示推送消息。
可以理解的是,上述推送消息接收为应用程序代发方式。在应用程序所对应的服务器与终端上该应用程序相应的推送服务进程连接中断,且应用程序所对应的服务器与终端对应的厂商服务器连接中断时,应用程序所对应的服务器可查询其他应用程序所对应的推送服务进程是否与该应用程序所对应的服务器保持连接,若是,则可将推送消息下发至该应用程序所对应的推送服务进程,通过该应用程序所对应的推送服务进程代发推送消息。
在一个实施例中,当第二应用程序所对应的推送服务进程不存在时,通过第一应用程序所对应的推送服务进程,接收第一应用程序所对应的第一服务器转发的推送消息;第一服务器转发的推送消息由第二应用程序所对应的第二服务器发送至第一服务器;通过第一应用程序,按照与第二应用程序对应的显示样式展示接收到的推送消息。
具体地,各应用程序所对应的服务器之间可预先进行推送消息代发配置。对于每个应用程序所对应的服务器可设置运行哪些应用程序进行推送消息代发。预定可相互代发推送消息的服务器可进行数据共享。共享的数据具体为服务器与终端上属于该服务器所对应的应用程序的推送服务器进程的状态。
进一步地,当第二应用程序所对应的第二服务器有新的推送消息需要下发,但由于终端上第二应用程序所对应的推送服务进程不存在,导致第二服务器与终端之间连接断开后,可向第一应用程序所对应的第一服务器查询第一服务器与终端的连接状态。当第一服务器与终端的连接状态为正常状态时,第二服务器可将第二应用程序标识携带在推送消息中发送至第一服务器,第一服务器再将该推送消息转发至终端,由第一应用程序所对应的推送服务进程接收。第一应用程序再按照与第二应用程序对应的显示样式展示接收到的推送消息。
举例说明,假设应用程序A的服务器有一个新的推送消息要下发至应用程序A相应的推送服务进程,但应用程序A相应的推送服务进程此时未正常运行,应用程序A的服务器无法将推送消息及时下发至应用程序A相应的推送服务进程。而此时,应用程序B相应的推送服务进程此时正常运行,那么应用程序A的服务器可将推送消息发送至应用程序B的服务器,由应用程序B的服务器转发至应用程序B相应的推送服务进程,应用程序B相应的推送服务进程在接收到该推送消息后,发现该推送消息是应用程序A的推送消息,则以应用程序A的显示样式展示该推送消息。
在展示上,应用程序B具体可使用应用程序A的图标替换通知图标,将用户对展示的推送消息的触发行为改为直接拉起应用程序A并透传数据,使得在数据和展示上应用程序A无需做过多修改。对部分无法更换通知图标的情况,可使用自定义通知的方式,来放置应用程序A图标的图片,保证用户看到的效果和应用程序A发出的一致。
举例说明,图4B示出了一个实施例中展示推送消息时的界面示意图。参考图4B,可以看到在终端在通过应用程序A的推送服务进程接收到属于应用程序B的推送消息时,可通过悬浮窗口按照应用程序B的显示样式展示接收到的推送消息420。图4C示出了一个实施例中展示推送消息时的界面示意图。参考图4C,可以看到在终端在通过应用程序B的推送服务进程接收到属于应用程序B的推送消息时,可通过悬浮窗口按照应用程序B的显示样式展示接收到的推送消息430。通过比较图4B和图4C可以看出,应用程序A代发应用程序B的推送消息时,与应用程序B展示本应用程序B的推送消息时效果一致。
需要解释的是,应用程序之间可进行代发,是由于应用程序共同接入了SDK,共同接入了SDK的服务器之间可进行连接状态共享。不同的应用程序之间可依据SDK设定推送消息代发的相关信息。比如是否允许代发或者代发时依据的通信协议等。
在本实施例中,提供了推送服务器在无法之间将推送消息下发至相应的推送服务进程,且无法通过厂商服务器转发推送信息时,通过应用程序间的代发来实现接收推送消息的方式,进一步提高了推送消息的到达率。
在一个实施例中,该推送消息接收方法还包括:推送消息重发的步骤。推送消息重发是对未及时展示的推送消息进行重新展示。具体地,终端可通过SDK查询通过推送服务进程接收的推送消息,确定查询的推送消息中未展示的推送消息,将未展示的推送消息进行展示。SDK可记录接收到的推送消息,并在推送消息在展示后对该推送消息进行已读标记或者删除。这样,在下次展示推送消息时,将未展示的推送消息进行展示。举例说明,SDK可在终端锁屏后将锁屏状态下接收到的推送消息记录在消息列表中。当检测到亮屏指令时,若推送服务进程仍存在,则判定系统在亮屏时会展示消息列表中的推送消息,此时可清空消息列表。当检测到亮屏指令时,若推送服务进程已存在,则判定系统在亮屏时不会展示消息列表中的推送消息,SDK可在下次展示推送消息时展示消息列表中的推送消息。
在一个实施例中,该推送消息接收方法还提供了一种检测工具。该检测工具安装于终端后,可检测推送服务进程所接收到的推送消息以及推送服务进程的存活率,对SDK实现的功能进行评估。
如图5所示,在一个具体的实施例中,该推送消息接收方法具体包括以下步骤:
S502,通过SDK监听通过多种唤醒方式发起的唤醒信号;其中,多种唤醒方式包括操作系统唤醒方式、定时唤醒方式、应用程序定向唤醒方式和应用程序非定向唤醒方式中的至少两种。
S504,在监听到通过任意一种唤醒方式发起的唤醒信号时,通过SDK查询接入SDK的应用程序所对应的推送服务进程。
S506,判断接入SDK的应用程序所对应的推送服务进程是否存在;若不存在,则跳转至步骤S508;若存在,则跳转至步骤S518。
S508,启动与应用程序相应的推送服务进程。
S510,确定推送服务进程所对应的应用程序。
S512,判断确定的应用程序相应的应用程序通知栏是否存在;若不存在,则跳转至步骤S514;若存在,则跳转至步骤S516。
S514,创建通知组件并启动中间进程;将中间进程和推送服务进程均绑定至通知组件,使得在结束中间进程时触发删除通知组件并维持推送服务进程。
S516,建立推送服务进程与应用程序通知栏的第一绑定关系,以通过第一绑定关系维持推送服务进程。
S518,通过推送服务进程接收推送消息。
S520,获取锁屏指令;响应于锁屏指令,通过SDK创建预设尺寸的悬浮窗口;建立推送服务进程与预设尺寸的悬浮窗口的第二绑定关系,以通过第二绑定关系维持推送服务进程。
S522,检测亮屏指令;根据亮屏指令,查询通过推送服务进程在锁屏时接收的推送消息;展示查询到的推送消息。
S524,通过接收推送消息的推送服务进程所对应的第一应用程序,提取推送消息中携带的第二应用程序标识。
S526,判断第一应用程序与第二应用程序标识是否匹配;若匹配,则跳转至步骤S528;若不匹配,则跳转至步骤S530。
S528,通过第一应用程序在当前视图层的顶层视图层绘制可视悬浮窗口;通过第一应用程序按照与第一应用程序对应的显示样式,在可视悬浮窗口中展示推送消息。
S530,通过第一应用程序确定第二应用程序标识对应的第二应用程序;通过第一应用程序,按照与第二应用程序对应的显示样式展示推送消息。
在本实施例中,提供了一种可供各种应用程序接入的通用的开发工具,这样即可统一利用该SDK来监听通过多种唤醒方式发起的唤醒信号,在监听到通过任意一种唤醒方式发起的唤醒信号时,即可触发SDK来查询接入自身的应用程序所对应的推送服务进程是否还在运行,进而在发现与应用程序相应的推送服务进程已结束运行时,即可自动启动与应用程序相应的推送服务进程,以保证有运行着的推送服务进程来接收推送消息,从而提高了推送消息的到达率。
应该理解的是,虽然上述各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图6示出了一个实施例中推送服务进程唤醒和维持的原理示意图。参考图6,SDK可监听操作系统唤醒方式、定时唤醒方式、应用程序定向唤醒方式和应用程序非定向唤醒方式等多种唤醒方式发起的唤醒信号。在监听到通过任意一种唤醒方式发起的唤醒信号时,通过SDK查询接入SDK的应用程序所对应的推送服务进程,判断接入SDK的应用程序所对应的推送服务进程是否存在,若存在则进行进程维持控制,若不存在则启动与应用程序相应的推送服务进程后进行维持控制。
SDK可判断应用程序相应的应用程序通知栏是否存在,若存在则建立推送服务进程与应用程序通知栏的第一绑定关系,以通过第一绑定关系维持推送服务进程。若不存在,则创建通知组件并启动中间进程;将中间进程和推送服务进程均绑定至通知组件,使得在结束中间进程时触发删除通知组件并维持推送服务进程。SDK还可检测锁屏指令,在检测到锁屏指令后,创建预设尺寸的悬浮窗口;建立推送服务进程与预设尺寸的悬浮窗口的第二绑定关系,以通过第二绑定关系维持推送服务进程。
图7示出了一个实施例中推送消息接收和展示的原理示意图。参考图7,推送服务进程接收推送消息的数据通道可包括长连接/轮询通道,厂商服务器转发通道和应用程序代发通道。推送服务进程在接收到推送消息后可在满足推送消息展示的条件下展示推送消息。
推送服务进程可检测亮屏指令,在检测到亮屏指令后,根据亮屏指令,查询通过推送服务进程在锁屏时接收的推送消息;展示查询到的推送消息。推送服务进程所对应的应用程序还可提取推送消息中携带的应用程序标识,判断是否需要代发,若是,则通过应用程序确定应用程序标识对应的应用程序,按照与应用程序标识对应的应用程序所对应的显示样式展示推送消息。若不需要代发,则直接按照本应用程序的显示样式展示推送消息。
图8示出了一个实施例中SDK的原理示意图。参考图8,可以看到SDK包括服务层、消息层和展示层三个部分。其中,服务层用于维护推送服务进程,包括系统推送模块,进程启动模型和进程维持模块。系统推送模块用于开启和关闭操作系统推送服务进程,进程启动模型用于在在监听到多种唤醒方式发起的唤醒信号后重启结束运行的推送服务进程,进程维持模块用于维持推送服务进程的运行。
消息层包括数据传输通道维持、推送消息接收和推送消息处理。其中,数据传输通道维持可通过定时发送心跳数据包或者定时发起轮询请求的方式进行。推送消息接收可包括接收本应用程序的推送消息和接收其他应用程序的代发消息。推送消息处理可包括对推送消息的存储、排重和回包。展示层包括通知管理和样式管理。通知管理包括悬浮窗口展示推送消息和亮屏展示锁屏期间接收到的推送消息。样式管理包括推送消息的显示样式管理。
如图9所示,在一个实施例中,提供了一种推送消息接收装置900。参照图9,该推送消息接收装置900包括:监听模块901、查询模块902、启动模块903和接收模块904。
监听模块901,用于通过SDK监听通过多种唤醒方式发起的唤醒信号。
查询模块902,用于在监听到通过任意一种唤醒方式发起的唤醒信号时,通过SDK查询接入SDK的应用程序所对应的推送服务进程。
启动模块903,用于当未查询到应用程序所对应的推送服务进程时,启动与应用程序相应的推送服务进程。
接收模块904,用于通过推送服务进程接收推送消息。
上述推送消息接收装置900,提供了一种可供各种应用程序接入的通用的开发工具,这样即可统一利用该SDK来监听通过多种唤醒方式发起的唤醒信号,在监听到通过任意一种唤醒方式发起的唤醒信号时,即可触发SDK来查询接入自身的应用程序所对应的推送服务进程是否还在运行,进而在发现与应用程序相应的推送服务进程已结束运行时,即可自动启动与应用程序相应的推送服务进程,以保证有运行着的推送服务进程来接收推送消息,从而提高了推送消息的到达率。
在一个实施例中,多种唤醒方式包括操作系统唤醒方式、定时唤醒方式、应用程序定向唤醒方式和应用程序非定向唤醒方式中的至少两种。
在一个实施例中,当多种唤醒方式包括应用程序定向唤醒方式时,监听模块901还用于在启动推送服务进程时,通过推送服务进程相应的应用程序发起指向目标应用程序标识的唤醒信号。查询模块902还用于在检测到通过应用程序定向唤醒方式发起的唤醒信号时,则通过SDK提取唤醒信号指向的目标应用程序标识;通过SDK,查询接入SDK、且与目标应用程序标识对应的应用程序所对应的推送服务进程。
在一个实施例中,推送消息接收装置900还包括:维持模块905。
维持模块905,用于确定推送服务进程所对应的应用程序;当确定的应用程序相应的应用程序通知栏存在时,则建立推送服务进程与应用程序通知栏的第一绑定关系,以通过第一绑定关系维持推送服务进程。
在一个实施例中,维持模块905还用于当确定的应用程序相应的应用程序通知栏不存在时,则创建通知组件并启动中间进程;将中间进程和推送服务进程均绑定至通知组件,使得在结束中间进程时触发删除通知组件并维持推送服务进程。
如图10所示,在一个实施例中,推送消息接收装置900还包括:维持模块905和展示模块906。
展示模块906,用于获取用于创建应用程序通知栏的触发指令;响应于触发指令,通过SDK获取系统通知栏的展示样式;通过SDK按照展示样式创建应用程序通知栏。
在一个实施例中,维持模块905还用于获取锁屏指令;响应于锁屏指令,通过SDK创建预设尺寸的悬浮窗口;建立推送服务进程与预设尺寸的悬浮窗口的第二绑定关系,以通过第二绑定关系维持推送服务进程。
在一个实施例中,展示模块906还用于检测亮屏指令;根据亮屏指令,查询通过推送服务进程在锁屏时接收的推送消息;展示查询到的推送消息。
在一个实施例中,接收模块904,用于通过推送服务进程接收应用程序相应的服务器直接下发的推送消息;通过操作系统的推送服务进程,接收通过厂商服务器转发的、且由应用程序所对应的服务器下发的推送消息。
在一个实施例中,展示模块906还用于通过接收推送消息的推送服务进程所对应的第一应用程序,提取推送消息中携带的第二应用程序标识;当第一应用程序与第二应用程序标识匹配时,则通过第一应用程序按照与第一应用程序对应的显示样式展示推送消息。
在一个实施例中,展示模块906还用于当第一应用程序与第二应用程序标识不匹配时,则通过第一应用程序确定第二应用程序标识对应的第二应用程序;通过第一应用程序,按照与第二应用程序对应的显示样式展示推送消息。
在一个实施例中,展示模块906还用于通过第一应用程序在当前视图层的顶层视图层绘制可视悬浮窗口;通过第一应用程序按照与第一应用程序对应的显示样式,在可视悬浮窗口中展示推送消息。
图11示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110。如图11所示,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入设备和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现推送消息接收方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行推送消息接收方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏等,输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,也可以是外接的键盘、触控板或鼠标等。本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的推送消息接收装置可以实现为一种计算机程序的形式,计算机程序可在如图11所示的计算机设备上运行,计算机设备的非易失性存储介质可存储组成该推送消息接收装置的各个程序模块,比如,图9所示的监听模块901、查询模块902、启动模块903和接收模块904等。各个程序模块组成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的推送消息接收方法中的步骤。
例如,图11所示的计算机设备可以通过如图9所示的推送消息接收装置900中的监听模块901通过SDK监听通过多种唤醒方式发起的唤醒信号。通过查询模块902在监听到通过任意一种唤醒方式发起的唤醒信号时,通过SDK查询接入SDK的应用程序所对应的推送服务进程。通过启动模块903当未查询到应用程序所对应的推送服务进程时,启动与应用程序相应的推送服务进程。通过接收模块904通过推送服务进程接收推送消息。
在一个实施例中,提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时,使得处理器执行以下步骤:通过SDK监听通过多种唤醒方式发起的唤醒信号;在监听到通过任意一种唤醒方式发起的唤醒信号时,通过SDK查询接入SDK的应用程序所对应的推送服务进程;当未查询到应用程序所对应的推送服务进程时,启动与应用程序相应的推送服务进程;通过推送服务进程接收推送消息。
在一个实施例中,多种唤醒方式包括操作系统唤醒方式、定时唤醒方式、应用程序定向唤醒方式和应用程序非定向唤醒方式中的至少两种。
在一个实施例中,当多种唤醒方式包括应用程序定向唤醒方式时,该计算机程序被处理器执行时,还使得处理器执行以下步骤:在启动推送服务进程时,通过推送服务进程相应的应用程序发起指向目标应用程序标识的唤醒信号。在监听到通过任意一种唤醒方式发起的唤醒信号时,通过SDK查询接入SDK的应用程序所对应的推送服务进程,包括:在检测到通过应用程序定向唤醒方式发起的唤醒信号时,则通过SDK提取唤醒信号指向的目标应用程序标识;通过SDK,查询接入SDK、且与目标应用程序标识对应的应用程序所对应的推送服务进程。
在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:确定推送服务进程所对应的应用程序;当确定的应用程序相应的应用程序通知栏存在时,则建立推送服务进程与应用程序通知栏的第一绑定关系,以通过第一绑定关系维持推送服务进程。
在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:当确定的应用程序相应的应用程序通知栏不存在时,则创建通知组件并启动中间进程;将中间进程和推送服务进程均绑定至通知组件,使得在结束中间进程时触发删除通知组件并维持推送服务进程。
在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:获取用于创建应用程序通知栏的触发指令;响应于触发指令,通过SDK获取系统通知栏的展示样式;通过SDK按照展示样式创建应用程序通知栏。
在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:获取锁屏指令;响应于锁屏指令,通过SDK创建预设尺寸的悬浮窗口;建立推送服务进程与预设尺寸的悬浮窗口的第二绑定关系,以通过第二绑定关系维持推送服务进程。
在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:检测亮屏指令;根据亮屏指令,查询通过推送服务进程在锁屏时接收的推送消息;展示查询到的推送消息。
在一个实施例中,通过推送服务进程接收推送消息,包括:通过推送服务进程接收应用程序相应的服务器直接下发的推送消息。该计算机程序被处理器执行时,还使得处理器执行以下步骤:通过操作系统的推送服务进程,接收通过厂商服务器转发的、且由应用程序所对应的服务器下发的推送消息。
在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:通过接收推送消息的推送服务进程所对应的第一应用程序,提取推送消息中携带的第二应用程序标识;当第一应用程序与第二应用程序标识匹配时,则通过第一应用程序按照与第一应用程序对应的显示样式展示推送消息。
在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:当第一应用程序与第二应用程序标识不匹配时,则通过第一应用程序确定第二应用程序标识对应的第二应用程序;通过第一应用程序,按照与第二应用程序对应的显示样式展示推送消息。
在一个实施例中,通过第一应用程序按照与第一应用程序对应的显示样式展示推送消息,包括:通过第一应用程序在当前视图层的顶层视图层绘制可视悬浮窗口;通过第一应用程序按照与第一应用程序对应的显示样式,在可视悬浮窗口中展示推送消息。
上述存储介质,提供了一种可供各种应用程序接入的通用的开发工具,这样即可统一利用该SDK来监听通过多种唤醒方式发起的唤醒信号,在监听到通过任意一种唤醒方式发起的唤醒信号时,即可触发SDK来查询接入自身的应用程序所对应的推送服务进程是否还在运行,进而在发现与应用程序相应的推送服务进程已结束运行时,即可自动启动与应用程序相应的推送服务进程,以保证有运行着的推送服务进程来接收推送消息,从而提高了推送消息的到达率。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中储存有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:通过SDK监听通过多种唤醒方式发起的唤醒信号;在监听到通过任意一种唤醒方式发起的唤醒信号时,通过SDK查询接入SDK的应用程序所对应的推送服务进程;当未查询到应用程序所对应的推送服务进程时,启动与应用程序相应的推送服务进程;通过推送服务进程接收推送消息。
在一个实施例中,多种唤醒方式包括操作系统唤醒方式、定时唤醒方式、应用程序定向唤醒方式和应用程序非定向唤醒方式中的至少两种。
在一个实施例中,当多种唤醒方式包括应用程序定向唤醒方式时,该计算机程序被处理器执行时,还使得处理器执行以下步骤:在启动推送服务进程时,通过推送服务进程相应的应用程序发起指向目标应用程序标识的唤醒信号。在监听到通过任意一种唤醒方式发起的唤醒信号时,通过SDK查询接入SDK的应用程序所对应的推送服务进程,包括:在检测到通过应用程序定向唤醒方式发起的唤醒信号时,则通过SDK提取唤醒信号指向的目标应用程序标识;通过SDK,查询接入SDK、且与目标应用程序标识对应的应用程序所对应的推送服务进程。
在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:确定推送服务进程所对应的应用程序;当确定的应用程序相应的应用程序通知栏存在时,则建立推送服务进程与应用程序通知栏的第一绑定关系,以通过第一绑定关系维持推送服务进程。
在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:当确定的应用程序相应的应用程序通知栏不存在时,则创建通知组件并启动中间进程;将中间进程和推送服务进程均绑定至通知组件,使得在结束中间进程时触发删除通知组件并维持推送服务进程。
在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:获取用于创建应用程序通知栏的触发指令;响应于触发指令,通过SDK获取系统通知栏的展示样式;通过SDK按照展示样式创建应用程序通知栏。
在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:获取锁屏指令;响应于锁屏指令,通过SDK创建预设尺寸的悬浮窗口;建立推送服务进程与预设尺寸的悬浮窗口的第二绑定关系,以通过第二绑定关系维持推送服务进程。
在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:检测亮屏指令;根据亮屏指令,查询通过推送服务进程在锁屏时接收的推送消息;展示查询到的推送消息。
在一个实施例中,通过推送服务进程接收推送消息,包括:通过推送服务进程接收应用程序相应的服务器直接下发的推送消息。该计算机程序被处理器执行时,还使得处理器执行以下步骤:通过操作系统的推送服务进程,接收通过厂商服务器转发的、且由应用程序所对应的服务器下发的推送消息。
在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:通过接收推送消息的推送服务进程所对应的第一应用程序,提取推送消息中携带的第二应用程序标识;当第一应用程序与第二应用程序标识匹配时,则通过第一应用程序按照与第一应用程序对应的显示样式展示推送消息。
在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:当第一应用程序与第二应用程序标识不匹配时,则通过第一应用程序确定第二应用程序标识对应的第二应用程序;通过第一应用程序,按照与第二应用程序对应的显示样式展示推送消息。
在一个实施例中,通过第一应用程序按照与第一应用程序对应的显示样式展示推送消息,包括:通过第一应用程序在当前视图层的顶层视图层绘制可视悬浮窗口;通过第一应用程序按照与第一应用程序对应的显示样式,在可视悬浮窗口中展示推送消息。
上述计算机设备,提供了一种可供各种应用程序接入的通用的开发工具,这样即可统一利用该SDK来监听通过多种唤醒方式发起的唤醒信号,在监听到通过任意一种唤醒方式发起的唤醒信号时,即可触发SDK来查询接入自身的应用程序所对应的推送服务进程是否还在运行,进而在发现与应用程序相应的推送服务进程已结束运行时,即可自动启动与应用程序相应的推送服务进程,以保证有运行着的推送服务进程来接收推送消息,从而提高了推送消息的到达率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (17)
1.一种推送消息接收方法,包括:
通过SDK监听通过多种唤醒方式发起的唤醒信号;
在监听到通过任意一种所述唤醒方式发起的唤醒信号时,通过所述SDK查询接入所述SDK的应用程序所对应的推送服务进程;
当未查询到所述应用程序所对应的推送服务进程时,启动与所述应用程序相应的推送服务进程;
通过所述推送服务进程接收推送消息。
2.根据权利要求1所述的方法,其特征在于,所述多种唤醒方式包括操作系统唤醒方式、定时唤醒方式、应用程序定向唤醒方式和应用程序非定向唤醒方式中的至少两种。
3.根据权利要求2所述的方法,其特征在于,当所述多种唤醒方式包括应用程序定向唤醒方式时,所述方法还包括:
在启动推送服务进程时,通过所述推送服务进程相应的应用程序发起指向目标应用程序标识的唤醒信号;
所述在监听到通过任意一种所述唤醒方式发起的唤醒信号时,通过所述SDK查询接入所述SDK的应用程序所对应的推送服务进程,包括:
在检测到通过应用程序定向唤醒方式发起的唤醒信号时,则通过所述SDK提取所述唤醒信号指向的目标应用程序标识;
通过所述SDK,查询接入所述SDK、且与所述目标应用程序标识对应的应用程序所对应的推送服务进程。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述推送服务进程所对应的应用程序;
当确定的所述应用程序相应的应用程序通知栏存在时,则
建立所述推送服务进程与所述应用程序通知栏的第一绑定关系,以通过所述第一绑定关系维持所述推送服务进程。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当确定的所述应用程序相应的应用程序通知栏不存在时,则
创建通知组件并启动中间进程;
将所述中间进程和所述推送服务进程均绑定至所述通知组件,使得在结束所述中间进程时触发删除所述通知组件并维持所述推送服务进程。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取用于创建应用程序通知栏的触发指令;
响应于所述触发指令,通过所述SDK获取系统通知栏的展示样式;
通过所述SDK按照所述展示样式创建应用程序通知栏。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取锁屏指令;
响应于所述锁屏指令,通过所述SDK创建预设尺寸的悬浮窗口;
建立所述推送服务进程与所述预设尺寸的悬浮窗口的第二绑定关系,以通过所述第二绑定关系维持所述推送服务进程。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
检测亮屏指令;
根据所述亮屏指令,查询通过所述推送服务进程在锁屏时接收的推送消息;
展示查询到的所述推送消息。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述通过所述推送服务进程接收推送消息,包括:
通过所述推送服务进程接收应用程序相应的服务器直接下发的推送消息;
所述方法还包括:
通过操作系统的推送服务进程,接收通过厂商服务器转发的、且由应用程序所对应的服务器下发的推送消息。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过接收推送消息的推送服务进程所对应的第一应用程序,提取所述推送消息中携带的第二应用程序标识;
当所述第一应用程序与所述第二应用程序标识匹配时,则通过所述第一应用程序按照与所述第一应用程序对应的显示样式展示所述推送消息。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
当所述第一应用程序与所述第二应用程序标识不匹配时,则
通过所述第一应用程序确定所述第二应用程序标识对应的第二应用程序;
通过所述第一应用程序,按照与所述第二应用程序对应的显示样式展示所述推送消息。
12.根据权利要求10所述的方法,其特征在于,所述通过所述第一应用程序按照与所述第一应用程序对应的显示样式展示所述推送消息,包括:
通过所述第一应用程序在当前视图层的顶层视图层绘制可视悬浮窗口;
通过所述第一应用程序按照与所述第一应用程序对应的显示样式,在所述可视悬浮窗口中展示所述推送消息。
13.根据权利要求1至8中任一项所述的方法,其特征在于,所述通过所述推送服务进程接收推送消息,包括:
当第二应用程序所对应的推送服务进程不存在时,通过第一应用程序所对应的推送服务进程,接收所述第一应用程序所对应的第一服务器转发的推送消息;所述第一服务器转发的所述推送消息由所述第二应用程序所对应的第二服务器发送至所述第一服务器;
通过所述第一应用程序,按照与所述第二应用程序对应的显示样式展示接收到的所述推送消息。
14.根据权利要求1所述的方法,其特征在于,所述方法还包括:
查询通过所述推送服务进程接收的推送消息;
确定查询的所述推送消息中未展示的推送消息;
将所述未展示的推送消息进行展示。
15.一种推送消息接收装置,包括:
监听模块,用于通过SDK监听通过多种唤醒方式发起的唤醒信号;
查询模块,用于在监听到通过任意一种所述唤醒方式发起的唤醒信号时,通过所述SDK查询接入所述SDK的应用程序所对应的推送服务进程;
启动模块,用于当未查询到所述应用程序所对应的推送服务进程时,启动与所述应用程序相应的推送服务进程;
接收模块,用于通过所述推送服务进程接收推送消息。
16.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至14中任一项所述的方法的步骤。
17.一种计算机设备,包括存储器和处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至14中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711166342.0A CN109814954B (zh) | 2017-11-21 | 2017-11-21 | 推送消息接收方法、装置、存储介质和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711166342.0A CN109814954B (zh) | 2017-11-21 | 2017-11-21 | 推送消息接收方法、装置、存储介质和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109814954A true CN109814954A (zh) | 2019-05-28 |
CN109814954B CN109814954B (zh) | 2021-08-24 |
Family
ID=66600334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711166342.0A Active CN109814954B (zh) | 2017-11-21 | 2017-11-21 | 推送消息接收方法、装置、存储介质和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109814954B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110691137A (zh) * | 2019-10-10 | 2020-01-14 | 北京思特奇信息技术股份有限公司 | Sip服务器和ios之间的通信方法、手机及服务器 |
CN110879726A (zh) * | 2019-10-24 | 2020-03-13 | 深圳数位传媒科技有限公司 | 移动终端应用程序的保活方法及装置 |
CN111093159A (zh) * | 2019-12-23 | 2020-05-01 | 北京奇艺世纪科技有限公司 | 一种消息推送方法、装置、服务器及计算机可读存储介质 |
CN111464642A (zh) * | 2020-04-01 | 2020-07-28 | 北京四维智联科技有限公司 | 车机消息推送的方法和装置 |
CN111555955A (zh) * | 2020-03-26 | 2020-08-18 | 福州慧校通教育信息技术有限公司 | 一种消息中心实现方法、装置、设备和介质 |
CN111901677A (zh) * | 2020-07-24 | 2020-11-06 | 海信视像科技股份有限公司 | 一种统一控制进程启动的方法及显示设备 |
CN112199123A (zh) * | 2020-10-12 | 2021-01-08 | 广州欢网科技有限责任公司 | 一种应用互相唤醒的方法及系统 |
WO2021052410A1 (zh) * | 2019-09-18 | 2021-03-25 | 华为技术有限公司 | 一种应用管理方法及装置 |
CN112925582A (zh) * | 2021-02-22 | 2021-06-08 | 深圳依时货拉拉科技有限公司 | 安卓系统下提高应用程序在后台存活率的方法及移动终端 |
CN113055277A (zh) * | 2021-03-10 | 2021-06-29 | 维沃移动通信有限公司 | 消息通知方法、装置及存储介质 |
CN113902132A (zh) * | 2021-12-09 | 2022-01-07 | 北京达佳互联信息技术有限公司 | 负反馈行为预测模型训练方法、消息推送方法及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103595766A (zh) * | 2013-10-23 | 2014-02-19 | 北京奇虎科技有限公司 | 实现扩展应用程序的推送通知的方法及装置 |
CN103995707A (zh) * | 2014-06-11 | 2014-08-20 | 腾讯科技(深圳)有限公司 | 一种应用通知消息处理方法、装置及终端设备 |
US20150019423A1 (en) * | 2013-07-15 | 2015-01-15 | Barry Dowling | Transactional reconciliation system and method |
CN106027329A (zh) * | 2016-05-16 | 2016-10-12 | 乐视控股(北京)有限公司 | 推送服务测试方法及装置 |
CN106790727A (zh) * | 2017-03-30 | 2017-05-31 | 武汉斗鱼网络科技有限公司 | 消息推送方法及装置 |
CN106933660A (zh) * | 2017-02-17 | 2017-07-07 | 广州启生信息技术有限公司 | 一种安卓平台下应用进程保活的实现方法 |
-
2017
- 2017-11-21 CN CN201711166342.0A patent/CN109814954B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150019423A1 (en) * | 2013-07-15 | 2015-01-15 | Barry Dowling | Transactional reconciliation system and method |
CN103595766A (zh) * | 2013-10-23 | 2014-02-19 | 北京奇虎科技有限公司 | 实现扩展应用程序的推送通知的方法及装置 |
CN103995707A (zh) * | 2014-06-11 | 2014-08-20 | 腾讯科技(深圳)有限公司 | 一种应用通知消息处理方法、装置及终端设备 |
CN106027329A (zh) * | 2016-05-16 | 2016-10-12 | 乐视控股(北京)有限公司 | 推送服务测试方法及装置 |
CN106933660A (zh) * | 2017-02-17 | 2017-07-07 | 广州启生信息技术有限公司 | 一种安卓平台下应用进程保活的实现方法 |
CN106790727A (zh) * | 2017-03-30 | 2017-05-31 | 武汉斗鱼网络科技有限公司 | 消息推送方法及装置 |
Non-Patent Citations (1)
Title |
---|
AQI00: "Android开发笔记(一百零四)消息推送SDK", 《HTTP://BLOG.CSDN.NET/AQI00/ARTICLE/DETAILS/51593839》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021052410A1 (zh) * | 2019-09-18 | 2021-03-25 | 华为技术有限公司 | 一种应用管理方法及装置 |
CN110691137A (zh) * | 2019-10-10 | 2020-01-14 | 北京思特奇信息技术股份有限公司 | Sip服务器和ios之间的通信方法、手机及服务器 |
CN110879726A (zh) * | 2019-10-24 | 2020-03-13 | 深圳数位传媒科技有限公司 | 移动终端应用程序的保活方法及装置 |
CN110879726B (zh) * | 2019-10-24 | 2023-09-26 | 深圳数位大数据科技有限公司 | 移动终端应用程序的保活方法及装置 |
CN111093159B (zh) * | 2019-12-23 | 2022-03-04 | 北京奇艺世纪科技有限公司 | 一种消息推送方法、装置、服务器及计算机可读存储介质 |
CN111093159A (zh) * | 2019-12-23 | 2020-05-01 | 北京奇艺世纪科技有限公司 | 一种消息推送方法、装置、服务器及计算机可读存储介质 |
CN111555955A (zh) * | 2020-03-26 | 2020-08-18 | 福州慧校通教育信息技术有限公司 | 一种消息中心实现方法、装置、设备和介质 |
CN111555955B (zh) * | 2020-03-26 | 2022-08-05 | 福州慧校通教育信息技术有限公司 | 一种消息中心实现方法、装置、设备和介质 |
CN111464642A (zh) * | 2020-04-01 | 2020-07-28 | 北京四维智联科技有限公司 | 车机消息推送的方法和装置 |
CN111901677A (zh) * | 2020-07-24 | 2020-11-06 | 海信视像科技股份有限公司 | 一种统一控制进程启动的方法及显示设备 |
CN112199123A (zh) * | 2020-10-12 | 2021-01-08 | 广州欢网科技有限责任公司 | 一种应用互相唤醒的方法及系统 |
CN112925582A (zh) * | 2021-02-22 | 2021-06-08 | 深圳依时货拉拉科技有限公司 | 安卓系统下提高应用程序在后台存活率的方法及移动终端 |
CN113055277A (zh) * | 2021-03-10 | 2021-06-29 | 维沃移动通信有限公司 | 消息通知方法、装置及存储介质 |
CN113055277B (zh) * | 2021-03-10 | 2023-04-25 | 维沃移动通信有限公司 | 消息通知方法、装置及存储介质 |
CN113902132A (zh) * | 2021-12-09 | 2022-01-07 | 北京达佳互联信息技术有限公司 | 负反馈行为预测模型训练方法、消息推送方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109814954B (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109814954A (zh) | 推送消息接收方法、装置、存储介质和计算机设备 | |
CN104516806B (zh) | 移动终端的耗电信息的检测结果展示方法及系统 | |
CN103019521B (zh) | 一种移动终端熄屏方法及装置 | |
CN102546779B (zh) | 一种跨设备间应用数据的同步方法及装置 | |
CN113805747B (zh) | 信息提醒方法、电子设备及计算机可读存储介质 | |
CN104750450A (zh) | 一种即时通信中的文件共享方法及终端 | |
CN109803359A (zh) | 一种唤醒终端系统的方法及终端 | |
CN105049627A (zh) | 卡片生成方法和装置 | |
US20140310372A1 (en) | Method, terminal, cache server and system for updating webpage data | |
CN103067596B (zh) | 一种快速显示预设事件的移动终端及其控制方法 | |
CN108287647B (zh) | 一种应用运行方法及装置 | |
CN106296135A (zh) | 事件提醒方法、装置及终端 | |
CN106471775A (zh) | 消息存储 | |
EP4123472A1 (en) | Information sharing method, apparatus, electronic device, and storage medium | |
CN106484075B (zh) | 调整应用程序唤醒时间的方法及装置 | |
CN111950908A (zh) | 调度任务配置推送方法、装置、计算机和存储介质 | |
CN110825460A (zh) | 应用程序的控制方法、装置、计算机设备及存储介质 | |
CN115562744A (zh) | 一种应用程序加载方法及电子设备 | |
WO2016112602A1 (zh) | 快捷操作方法、快捷操作装置和终端 | |
CN105843465A (zh) | 一种作者关注方法、终端、服务器和系统 | |
CN112988030B (zh) | 终端控制方法、装置、终端和存储介质 | |
US20240126986A1 (en) | Method and apparatus for processing document, device and medium | |
CN104092831A (zh) | 一种在手机锁屏上显示内容的系统和方法 | |
CN113542256A (zh) | 客户端中登录凭证的更新方法、装置、设备及存储介质 | |
CN109040284A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |