终端中应用程序的处理方法及装置的制造方法

文档序号:10534599阅读:202来源:国知局
终端中应用程序的处理方法及装置的制造方法
【专利摘要】本公开是关于终端中应用程序的处理方法及装置。该方法包括:监听到终端中的应用程序的通信请求;调用终端中的一进程;通过进程将通信请求发送至应用程序所对应的服务器,并建立进程与服务器之间的长连接;通过进程接收服务器针对通信请求返回的响应信息,并将响应信息发送至应用程序。该技术方案,可以通过一进程建立并维持所有的应用程序与其对应的服务器之间的长连接,确保在该应用程序被关闭时,该应用程序与其对应的服务器之间的长连接并不会随之消失;同时也能确保该应用程序与其对应的服务器之间的通信实时性,并减少系统的耗电量。
【专利说明】
终端中应用程序的处理方法及装置
技术领域
[0001 ]本公开涉及终端技术领域,尤其涉及终端中应用程序的处理方法及装置。
【背景技术】
[0002]目前,随着移动互联网的飞速发展,很多应用程序对TCP(Transmiss1nControlProtocol,传输控制协议)长连接的依赖越来越大,即时通讯软件或者V0IP(Voice overInternet Protocol,将模拟信号数字化)软件需要在任何时候都能接收到服务器端的消息,这就需要建立并维持与服务器之间的连接。但在现有技术中,应用程序与服务器之间建立的长连接,需要应用的进程去维持这个长连接,这就存在一些问题,如该应用程序被关闭时,长连接随之消息,或者当该应用程序退到后台时,系统会禁止使用长连接,为了解决这些问题,可以单独启动一个后台进程维持该长连接,这样当该应用程序被关闭后,该长连接会一直存在,但这种解决方案需要为每个应用程序单独创建一个进程,系统资源消耗过多,或者采用第三方push服务来维持该长连接,使得该应用程序被关闭后,该长连接会一直存在,但数据的到达率和实时性无法保证。另外,上述两种解决方案都无法解决该应用程序运行至后台后,该长连接仍然无法联网,造成信息丢失或接收不及时的问题,同时,无论哪种解决方案都会经常唤醒系统,浪费电量。

【发明内容】

[0003]本公开实施例提供了终端中应用程序的处理方法及装置。所述技术方案如下:
[0004]根据本公开实施例的第一方面,提供一种终端中应用程序的处理方法,包括:
[0005]监听到所述终端中的应用程序的通信请求;
[0006]调用所述终端中的一进程;
[0007]通过所述进程将所述通信请求发送至所述应用程序所对应的服务器,并建立所述进程与所述服务器之间的长连接;
[0008]通过所述进程接收所述服务器针对所述通信请求返回的响应信息,并将所述响应信息发送至所述应用程序。
[0009]在一个实施例中,所述方法还包括:
[0010]在所述应用程序接收到所述响应信息之后,监测所述应用程序是否运行在后台或者是否被从内存中清除;
[0011]在所述应用程序运行在所述后台或者被从内存中清除,且所述应用程序尚未被退出时,按照预设唤醒周期唤醒所述应用程序,以使所述服务器保持与所述进程之间的所述长连接。
[0012]在一个实施例中,所述按照预设唤醒周期唤醒所述应用程序,以使所述服务器保持与所述进程之间的所述长连接,包括:
[0013]在按照所述预设唤醒周期唤醒所述应用程序之后,控制所述应用程序向所述进程发送心跳包;
[0014]通过所述进程将所述心跳包发送至所述服务器,以使所述服务器保持与所述进程之间的所述长连接。
[0015]在一个实施例中,所述方法还包括:
[0016]在按照所述预设唤醒周期唤醒所述应用程序之后,判断所述应用程序是否回到后台;
[0017]当所述应用程序回到所述后台时,关闭所述应用程序。
[0018]在一个实施例中,所述方法还包括:
[0019]确定在预设数目个所述预设唤醒周期内,所述应用程序被唤醒后,回到所述后台的总次数;
[0020]确定所述总次数与所述预设数目的比例是否大于或等于预设比例;
[0021]当所述比例大于或等于所述预设比例、且在所述预设数目个所述预设唤醒周期内所述应用程序最后一次被唤醒后再次回到所述后台时,控制所述应用程序向所述进程发送长连接关闭通知;
[0022]通过所述进程将所述长连接关闭通知发送至所述服务器,以使所述服务器断开与所述进程之间的所述长连接。
[0023]在一个实施例中,当所述应用程序包括至少两个时,所述方法还包括:
[0024]判断所述终端的当前剩余电量是否小于或等于预设剩余电量;
[0025]当所述当前剩余电量小于或等于所述预设剩余电量时,获取在预设历史时间段内、至少两个所述应用程序中前台运行时间最短的目标应用程序;
[0026]控制所述目标应用程序向所述进程发送长连接断开指令,以使所述进程断开与所述目标应用程序所对应的服务器之间的长连接。
[0027]在一个实施例中,所述控制所述目标应用程序向所述进程发送长连接关闭指令,包括:
[0028]将所述目标应用程序和所述当前剩余电量提示给用户,以使所述用户根据所述当前剩余电量确定是否断开所述进程与所述目标应用程序所对应的服务器之间的长连接;
[0029]在接收到所述长连接断开指令时,控制所述目标应用程序向所述进程发送长连接断开指令。
[0030]在一个实施例中,所述进程包括:允许进行后台联网的系统进程。
[0031]根据本公开实施例的第二方面,提供一种终端中应用程序的处理装置,包括:
[0032]监听模块,用于监听到所述终端中的应用程序的通信请求;
[0033]调用模块,用于调用所述终端中的一进程;
[0034]第一处理模块,用于通过所述进程将所述通信请求发送至所述应用程序所对应的服务器,并建立所述进程与所述服务器之间的长连接;
[0035]第二处理模块,用于通过所述进程接收所述服务器针对所述通信请求返回的响应信息,并将所述响应信息发送至所述应用程序。
[0036]在一个实施例中,所述装置还包括:
[0037]监测模块,用于在所述应用程序接收到所述响应信息之后,监测所述应用程序是否运行在后台或者是否被从内存中清除;
[0038]唤醒模块,用于在所述应用程序运行在所述后台或者被从内存中清除,且所述应用程序尚未被退出时,按照预设唤醒周期唤醒所述应用程序,以使所述服务器保持与所述进程之间的所述长连接。
[0039]在一个实施例中,所述唤醒模块包括:
[0040]控制子模块,用于在按照所述预设唤醒周期唤醒所述应用程序之后,控制所述应用程序向所述进程发送心跳包;
[0041 ]发送子模块,用于通过所述进程将所述心跳包发送至所述服务器,以使所述服务器保持与所述进程之间的所述长连接。
[0042]在一个实施例中,所述装置还包括:
[0043]判断模块,用于在按照所述预设唤醒周期唤醒所述应用程序之后,判断所述应用程序是否回到后台;
[0044]第三处理模块,用于当所述应用程序回到所述后台时,关闭所述应用程序。
[0045]在一个实施例中,所述装置还包括:
[0046]第一确定模块,用于确定在预设数目个所述预设唤醒周期内,所述应用程序被唤醒后,回到所述后台的总次数;
[0047]第二确定模块,用于确定所述总次数与所述预设数目的比例是否大于或等于预设比例;
[0048]第一控制模块,用于当所述比例大于或等于所述预设比例、且在所述预设数目个所述预设唤醒周期内所述应用程序最后一次被唤醒后再次回到所述后台时,控制所述应用程序向所述进程发送长连接关闭通知;
[0049]发送模块,用于通过所述进程将所述长连接关闭通知发送至所述服务器,以使所述服务器断开与所述进程之间的所述长连接。
[0050]在一个实施例中,所述装置还包括:
[0051]判断模块,用于当所述应用程序包括至少两个时,判断所述终端的当前剩余电量是否小于或等于预设剩余电量;
[0052]获取模块,用于当所述当前剩余电量小于或等于所述预设剩余电量时,获取在预设历史时间段内、至少两个所述应用程序中前台运行时间最短的目标应用程序;
[0053]第二控制模块,用于控制所述目标应用程序向所述进程发送长连接断开指令,以使所述进程断开与所述目标应用程序所对应的服务器之间的长连接。
[0054]在一个实施例中,所述第二控制模块包括:
[0055]提示子模块,用于将所述目标应用程序和所述当前剩余电量提示给用户,以使所述用户根据所述当前剩余电量确定是否断开所述进程与所述目标应用程序所对应的服务器之间的长连接;
[0056]控制子模块,用于在接收到所述长连接断开指令时,控制所述目标应用程序向所述进程发送长连接断开指令。
[0057]在一个实施例中,所述进程包括:允许进行后台联网的系统进程。
[0058]根据本公开实施例的第三方面,提供了一种终端中应用程序的处理装置,包括:
[0059]处理器;
[0060]用于存储处理器可执行指令的存储器;
[0061 ]其中,所述处理器被配置为:
[0062]监听到所述终端中的应用程序的通信请求;
[0063 ]调用所述终端中的一进程;
[0064]通过所述进程将所述通信请求发送至所述应用程序所对应的服务器,并建立所述进程与所述服务器之间的长连接;
[0065]通过所述进程接收所述服务器针对所述通信请求返回的响应信息,并将所述响应信息发送至所述应用程序。
[0066]本公开的实施例提供的技术方案可以包括以下有益效果:
[0067]本公开的实施例提供的技术方案,在监听到终端中的应用程序的通信请求时,通过调用该终端中的进程,可以使用该进程建立并维持所有的应用程序与其对应的服务器之间的长连接,确保在该应用程序被关闭时,该应用程序与其对应的服务器之间的长连接并不会随之消失,从而避免该应用程序重新回到前台运行后,需要重新创建相应的长连接这一问题,进而简化操作,减少对系统资源不避免的消耗;同时也能确保该应用程序与其对应的服务器之间的通信实时性,并减少系统的耗电量。
[0068]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
【附图说明】
[0069]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0070]图1是根据一示例性实施例示出的一种终端中应用程序的处理方法的流程图。
[0071]图2是根据一示例性实施例示出的另一种终端中应用程序的处理方法的流程图。
[0072]图3是根据一示例性实施例一示出的又一种终端中应用程序的处理方法的流程图。
[0073]图4是根据一示例性实施例一示出的再一种终端中应用程序的处理方法的流程图。
[0074]图5是根据一示例性实施例一示出的再一种终端中应用程序的处理方法的流程图。
[0075]图6是根据一示例性实施例一示出的再一种终端中应用程序的处理方法的流程图。
[0076]图7是根据一示例性实施例一示出的再一种终端中应用程序的处理方法的流程图。
[0077]图8是根据一示例性实施例示出的一种终端中应用程序的处理装置的框图。
[0078]图9是根据一示例性实施例示出的另一种终端中应用程序的处理装置的框图。
[0079]图10是根据一示例性实施例示出的又一种终端中应用程序的处理装置的框图。
[0080]图11是根据一示例性实施例示出的再一种终端中应用程序的处理装置的框图。
[0081]图12是根据一示例性实施例示出的再一种终端中应用程序的处理装置的框图。
[0082]图13是根据一示例性实施例示出的再一种终端中应用程序的处理装置的框图。
[0083]图14是根据一示例性实施例示出的再一种终端中应用程序的处理装置的框图。
[0084]图15是根据一示例性实施例示出的适用于终端中应用程序的处理装置的框图。
【具体实施方式】
[0085]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
[0086]目前,随着移动互联网的飞速发展,很多应用程序对TCP(Transmiss1nControlProtocol,传输控制协议)长连接的依赖越来越大,即时通讯软件或者V0IP(Voice overInternet Protocol,将模拟信号数字化)软件需要在任何时候都能接收到服务器端的消息,这就需要建立并维持与服务器之间的连接。但在现有技术中,应用程序与服务器之间建立的长连接,需要应用的进程去维持这个长连接,这就存在一些问题,如该应用程序被关闭时,长连接随之消息,或者当该应用程序退到后台时,系统会禁止使用长连接,为了解决这些问题,可以单独启动一个后台进程维持该长连接,这样当该应用程序被关闭后,该长连接会一直存在,但这种解决方案需要为每个应用程序单独创建一个进程,系统资源消耗过多,或者采用第三方push服务来维持该长连接,使得该应用程序被关闭后,该长连接会一直存在,但数据的到达率和实时性无法保证。另外,上述两种解决方案都无法解决该应用程序运行至后台后,该长连接仍然无法联网,造成信息丢失或接收不及时的问题,同时,无论哪种解决方案都会经常唤醒系统,浪费电量。
[0087]为了解决上述技术问题,本公开实施例提供了一种终端中应用程序的处理方法,该方法可用于终端中应用程序的处理程序、系统或装置中,且该方法对应的执行主体可以是用户携带的安装有安卓系统的终端,如图1所示,该方法包括步骤S1I至步骤S104:
[0088]在步骤SlOl中,监听到所述终端中的应用程序的通信请求;
[0089]该通信请求为该应用程序请求与其对应的服务器相连接以进行通信的请求,可以是在该应用程序接收到打开操作动作(如点击、长按)时,自动生成的,也可以在应用程序接收到输入指令(如输入搜索关键词)、或者应用程序的虚拟图标被选中(如点击、长按能够进行页面跳转的虚拟图标等)时,自动生成的。
[0090]在步骤S102中,调用所述终端中的一进程;
[0091]该进程是终端中的一个系统进程,是一个公用进程,所有的应用程序在生成通信请求以期望与其对应的服务器进行通信时,均通过该进程将其通信请求转发至对应的服务器。
[0092]另外,该进程可以是系统在监测到应用程序的通信请求之前已自动创建的,也可以是在终端被启动后,系统在监测到第一个被启动的应用程序生成的通信请求之后,自动创建的,还可以是在终端被启动后,第一个被启动的应用程序在生成通信请求后自动创建的,且当该进程被创建完成之后,只要用户不手动清除该进程、或者终端不关机、或者所有的应用程序未被全部退出登录,该进程会一直存在于系统中,以供调用。
[0093]在步骤S103中,通过所述进程将所述通信请求发送至所述应用程序所对应的服务器,并建立所述进程与所述服务器之间的长连接,其中,长连接是指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包;
[0094]通过该进程将该通信请求发送至该应用程序所对应的服务器,并建立该进程与该应用程序的服务器之间的长连接,可以在该应用程序被关闭(即该应用程序被从内存中清除、但未被退出登录)时,该应用程序与其对应的服务器之间的长连接(即该进程与其对应的服务器之间的长连接)仍然存在,并不会随之消失,从而避免该应用程序重新回到前台运行后,需要重新创建相应的长连接这一问题,进而简化操作,减少对系统资源不避免的消耗;
[0095]另外,由于该终端中仅有一个负责建立所有的应用程序与其对应的服务器之间的长连接的进程,因而,这进一步减少了系统资源的消耗,避免为每个应用程序均创建一个建立长连接的进程,同时由于该进程是该终端中的进程,并不是第三方的push服务,因而也能保证应用程序与其对应的服务器之间的通信实时性。
[0096]在步骤S104中,通过所述进程接收所述服务器针对所述通信请求返回的响应信息,并将所述响应信息发送至所述应用程序。
[0097]在服务器响应该进程转发的相应应用程序发送的通信请求,并与该进程建立相应的长连接后,该进程会接收到服务器针对该通信请求返回的响应信息,此时,该进程也会将该响应信息发送至应用程序,这样就可以使应用程序确认能够开始与该服务器进行通信了,以提高通信效率。
[0098]如图2所示,在一个实施例中,所述方法还包括:
[0099]在步骤S201中,在所述应用程序接收到所述响应信息之后,监测所述应用程序是否运行在后台或者是否被从内存中清除;
[0100]在步骤S202中,在所述应用程序运行在所述后台或者被从内存中清除,且所述应用程序尚未被退出时,按照预设唤醒周期唤醒所述应用程序,以使所述服务器保持与所述进程之间的所述长连接。
[0101]在该应用程序接收到响应信息之后,需要监测应用程序是否运行在后台或者是否被从内存中清除,如果监测到该应用程序仍然运行在后台或者被从内存中清除,且该应用程序尚未被退出登录时,则说明用户当前未使用该应用程序且用户并未彻底退出该应用程序,因而,用户很可能需要继续使用该应用程序,与其对应的服务器进行通信(如再次向其对应的服务器发送通信请求),所以,系统可以按照预设唤醒周期唤醒该应用程序,以使服务器保持与进程之间的长连接,从而使服务器确认其对应的应用程序仍然处于“在线”状态,避免服务器误认为该应用程序已经被退出而过早中断该长连接,进而导致用户再使用该应用程序时,系统需要重新建立该长连接。
[0102]如图3所示,在一个实施例中,上述步骤S202中的步骤“所述按照预设唤醒周期唤醒所述应用程序,以使所述服务器保持与所述进程之间的所述长连接”可被执行为:
[0103]在步骤Al中,在按照所述预设唤醒周期唤醒所述应用程序之后,控制所述应用程序向所述进程发送心跳包;
[0104]在步骤A2中,通过所述进程将所述心跳包发送至所述服务器,以使所述服务器保持与所述进程之间的所述长连接。
[0105]在按照预设唤醒周期唤醒该应用程序之后,可以控制该应用程序向该进程发送该心跳包,从而通过该进程将心跳包发送至服务器,以使服务器确认其对应的应用程序仍然处于“在线”状态,避免服务器误认为该应用程序已经被退出而过早中断该长连接,进而导致用户再使用该应用程序时,系统需要重新建立该长连接。
[0106]另外,由于所有的应用程序在与其对应的服务器建立长连接时,都需要通过该进程,并建立该进程与其对应的服务器之间的长连接,因而,系统定期统一唤醒这些应用程序并控制这些应用程序统一向该进程发送心跳包之后,该进程会将接收到的所有心跳包统一发送至各自对应的服务器,由该进程来统一维持与各自的服务器之间的长连接,这样可以减少电量的消耗,避免各应用程序不停地自主唤醒系统进而通过该进程发送心跳包来维持相应的长连接所带来的耗电多的问题。
[0107]如图4所示,在一个实施例中,所述方法还包括:
[0108]在步骤S401之后,在按照所述预设唤醒周期唤醒所述应用程序之后,判断所述应用程序是否回到后台;
[0109]在步骤S402之后,当所述应用程序回到所述后台时,关闭所述应用程序。
[0110]在按照该预设唤醒周期唤醒应用程序之后,需要判断应用程序是否回到后台,当该应用程序回到后台时,说明用户并未正常使用该应用程序,则可以自动关闭应用程序,以将该应用程序从内存中清除,从而释放一些内存,避免占用过多内存,而影响系统的运行性會K。
[0111]如图5所示,在一个实施例中,所述方法还包括:
[0112]在步骤S501中,确定在预设数目个所述预设唤醒周期内,所述应用程序被唤醒后,回到所述后台的总次数;其中,该预设数目个预设唤醒周期为连续N个预设唤醒周期。
[0113]在步骤S502中,确定所述总次数与所述预设数目的比例是否大于或等于预设比例;该预设比例可以是0.7等。
[0114]在步骤S503中,当所述比例大于或等于所述预设比例、且在所述预设数目个所述预设唤醒周期内所述应用程序最后一次被唤醒后再次回到所述后台时,控制所述应用程序向所述进程发送长连接关闭通知;
[0115]当该比例大于或等于该预设比例时,说明该应用程序每次被唤醒后,多数情况下,用户并未使用该应用程序,该应用程序大部分时间处于空闲状态并未运行,此时,如果在这些预设唤醒周期内,该应用程序最后一次被唤醒后又一次回到后台,说明用户当前也未使用该应用程序,因而为了避免长时间空闲的长连接占用系统资源,可以控制该应用程序向进程发送长连接关闭通知。
[0116]在步骤S504中,通过所述进程将所述长连接关闭通知发送至所述服务器,以使所述服务器断开与所述进程之间的所述长连接。
[0117]进而进程会将该长连接关闭通知发送至该应用程序所对应的服务器,以使服务器明确用户当前并未经常使用其对应的应用程序,因而,可以自动地断开与进程之间的长连接,从而减少该应用程序所对应的长连接对系统资源的占用。
[0118]如图6所示,在一个实施例中,当所述应用程序包括至少两个时,所述方法还包括:
[0119]在步骤S601中,判断所述终端的当前剩余电量是否小于或等于预设剩余电量;
[0120]在步骤S602中,当所述当前剩余电量小于或等于所述预设剩余电量时,获取在预设历史时间段内、至少两个所述应用程序中前台运行时间最短的目标应用程序;
[0121 ]在步骤S603中,控制所述目标应用程序向所述进程发送长连接断开指令,以使所述进程断开与所述目标应用程序所对应的服务器之间的长连接。
[0122]在当前剩余电量小于或等于该预设剩余电量(如30%)时,说明当前剩余电量不太够用了,则可以自动获取在预设历史时间段内、该至少两个应用程序中前台运行时间最短的目标应用程序即用户最不常用的应用程序,进而控制该目标应用程序向进程发送长连接断开指令,以使该进程自动断开与目标应用程序所对应的服务器之间的长连接,从而减少系统中的长连接数目,减少对电量的消耗。
[0123]如图7所示,在一个实施例中,上述步骤S603可被执行为:
[0124]在步骤BI中,将所述目标应用程序和所述当前剩余电量提示给用户,以使所述用户根据所述当前剩余电量确定是否断开所述进程与所述目标应用程序所对应的服务器之间的长连接;
[0125]在步骤B2中,在接收到所述长连接断开指令时,控制所述目标应用程序向所述进程发送长连接断开指令。
[0126]为了避免误断开相应的长连接,可以将该目标应用程序和该当前剩余电量提示给用户,以使用户根据该当前剩余电量自主确定是否断开进程与该目标应用程序所对应的服务器之间的长连接,从而确保只有在接收到该长连接断开指令时,才该目标应用程序向进程发送长连接断开指令,避免误断开重要的长连接。
[0127]在一个实施例中,所述进程包括:允许进行后台联网的系统进程。
[0128]该进程可以是允许进行后台联网的系统进程,这样即便是该应用程序回到后台、或者该进程运行在后台,由于该进程仍然能够使用网络,且该进程与该应用程序所对应的服务器的长连接依然存在,因而,该进程仍然能够正常接收到来自其服务器发送的信息,这也使得该应用程序在后台时,也能够实时接收到来自服务器的信息,避免信息丢失或者接收不及时的问题。
[0129]另外,将该进程设置为允许进行后台联网的系统进程的方式也很简单,只需要将该进程加入系统中预存储的允许进行后台联网的应用程序的白名单列表中即可。
[0130]对应本公开实施例提供的上述终端中应用程序的处理方法,本公开实施例还提供一种终端中应用程序的处理装置,如图8所示,该装置包括:
[0131]监听模块801,用于监听到所述终端中的应用程序的通信请求;
[0132]调用模块802,用于调用所述终端中的一进程;
[0133]第一处理模块803,用于通过所述进程将所述通信请求发送至所述应用程序所对应的服务器,并建立所述进程与所述服务器之间的长连接;
[0134]第二处理模块804,用于通过所述进程接收所述服务器针对所述通信请求返回的响应信息,并将所述响应信息发送至所述应用程序。
[0135]如图9所示,在一个实施例中,所述装置还包括:
[0136]监测模块901,用于在所述应用程序接收到所述响应信息之后,监测所述应用程序是否运行在后台或者是否被从内存中清除;
[0137]唤醒模块902,用于在所述应用程序运行在所述后台或者被从内存中清除,且所述应用程序尚未被退出时,按照预设唤醒周期唤醒所述应用程序,以使所述服务器保持与所述进程之间的所述长连接。
[0138]如图10所示,在一个实施例中,所述唤醒模块902包括:
[0139]控制子模块9021,用于在按照所述预设唤醒周期唤醒所述应用程序之后,控制所述应用程序向所述进程发送心跳包;
[0140]发送子模块9022,用于通过所述进程将所述心跳包发送至所述服务器,以使所述服务器保持与所述进程之间的所述长连接。
[0141]如图11所示,在一个实施例中,所述装置还包括:
[0142]判断模块1101,用于在按照所述预设唤醒周期唤醒所述应用程序之后,判断所述应用程序是否回到后台;
[0143]第三处理模块1102,用于当所述应用程序回到所述后台时,关闭所述应用程序。
[0144]如图12所示,在一个实施例中,所述装置还包括:
[0145]第一确定模块1201,用于确定在预设数目个所述预设唤醒周期内,所述应用程序被唤醒后,回到所述后台的总次数;
[0146]第二确定模块1202,用于确定所述总次数与所述预设数目的比例是否大于或等于预设比例;
[0147]第一控制模块1203,用于当所述比例大于或等于所述预设比例、且在所述预设数目个所述预设唤醒周期内所述应用程序最后一次被唤醒后再次回到所述后台时,控制所述应用程序向所述进程发送长连接关闭通知;
[0148]发送模块1204,用于通过所述进程将所述长连接关闭通知发送至所述服务器,以使所述服务器断开与所述进程之间的所述长连接。
[0149]如图13所示,在一个实施例中,所述装置还包括:
[0150]判断模块1301,用于当所述应用程序包括至少两个时,判断所述终端的当前剩余电量是否小于或等于预设剩余电量;
[0151]获取模块1302,用于当所述当前剩余电量小于或等于所述预设剩余电量时,获取在预设历史时间段内、至少两个所述应用程序中前台运行时间最短的目标应用程序;
[0152]第二控制模块1303,用于控制所述目标应用程序向所述进程发送长连接断开指令,以使所述进程断开与所述目标应用程序所对应的服务器之间的长连接。
[0153]如图14所示,在一个实施例中,所述第二控制模块1303包括:
[0154]提示子模块13031,用于将所述目标应用程序和所述当前剩余电量提示给用户,以使所述用户根据所述当前剩余电量确定是否断开所述进程与所述目标应用程序所对应的服务器之间的长连接;
[0155]控制子模块13032,用于在接收到所述长连接断开指令时,控制所述目标应用程序向所述进程发送长连接断开指令。
[0156]在一个实施例中,所述进程包括:允许进行后台联网的系统进程。
[0157]根据本公开实施例的第三方面,提供一种终端中应用程序的处理装置,包括:
[0158]处理器;
[0159]用于存储处理器可执行指令的存储器;
[0160]其中,处理器被配置为:
[0161]监听到所述终端中的应用程序的通信请求;
[0162]调用所述终端中的一进程;
[0163]通过所述进程将所述通信请求发送至所述应用程序所对应的服务器,并建立所述进程与所述服务器之间的长连接;
[0164]通过所述进程接收所述服务器针对所述通信请求返回的响应信息,并将所述响应信息发送至所述应用程序。
[0165]上述处理器还可被配置为:
[0166]所述方法还包括:
[0167]在所述应用程序接收到所述响应信息之后,监测所述应用程序是否运行在后台或者是否被从内存中清除;
[0168]在所述应用程序运行在所述后台或者被从内存中清除,且所述应用程序尚未被退出时,按照预设唤醒周期唤醒所述应用程序,以使所述服务器保持与所述进程之间的所述长连接。
[0169]上述处理器还可被配置为:
[0170]所述按照预设唤醒周期唤醒所述应用程序,以使所述服务器保持与所述进程之间的所述长连接,包括:
[0171]在按照所述预设唤醒周期唤醒所述应用程序之后,控制所述应用程序向所述进程发送心跳包;
[0172]通过所述进程将所述心跳包发送至所述服务器,以使所述服务器保持与所述进程之间的所述长连接。
[0173]上述处理器还可被配置为:
[0174]所述方法还包括:
[0175]在按照所述预设唤醒周期唤醒所述应用程序之后,判断所述应用程序是否回到后台;
[0176]当所述应用程序回到所述后台时,关闭所述应用程序。
[0177]上述处理器还可被配置为:
[0178]所述方法还包括:
[0179]确定在预设数目个所述预设唤醒周期内,所述应用程序被唤醒后,回到所述后台的总次数;
[0180]确定所述总次数与所述预设数目的比例是否大于或等于预设比例;
[0181]当所述比例大于或等于所述预设比例、且在所述预设数目个所述预设唤醒周期内所述应用程序最后一次被唤醒后再次回到所述后台时,控制所述应用程序向所述进程发送长连接关闭通知;
[0182]通过所述进程将所述长连接关闭通知发送至所述服务器,以使所述服务器断开与所述进程之间的所述长连接。
[0183]上述处理器还可被配置为:
[0184]当所述应用程序包括至少两个时,所述方法还包括:
[0185]判断所述终端的当前剩余电量是否小于或等于预设剩余电量;
[0186]当所述当前剩余电量小于或等于所述预设剩余电量时,获取在预设历史时间段内、至少两个所述应用程序中前台运行时间最短的目标应用程序;
[0187]控制所述目标应用程序向所述进程发送长连接断开指令,以使所述进程断开与所述目标应用程序所对应的服务器之间的长连接。
[0188]上述处理器还可被配置为:
[0189]所述控制所述目标应用程序向所述进程发送长连接关闭指令,包括:
[0190]将所述目标应用程序和所述当前剩余电量提示给用户,以使所述用户根据所述当前剩余电量确定是否断开所述进程与所述目标应用程序所对应的服务器之间的长连接;
[0191 ]在接收到所述长连接断开指令时,控制所述目标应用程序向所述进程发送长连接断开指令。
[0192]上述处理器还可被配置为:
[0193]所述进程包括:允许进行后台联网的系统进程。
[0194]图15是根据一示例性实施例示出的一种用于终端中应用程序的处理装置1500的框图,该装置适用于终端设备。例如,装置1500可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
[0195]参照图15,装置1500可以包括以下一个或至少两个组件:处理组件1502,存储器1504,电源组件1506,多媒体组件1508,音频组件1510,输入/输出(I /0)的接口 1512,传感器组件1514,以及通信组件1516。
[0196]处理组件1502通常控制装置1500的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1502可以包括一个或至少两个处理器1520来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1502可以包括一个或至少两个模块,便于处理组件1502和其他组件之间的交互。例如,处理组件1502可以包括多媒体模块,以方便多媒体组件1508和处理组件1502之间的交互。
[0197]存储器1504被配置为存储各种类型的数据以支持在设备1500的操作。这些数据的示例包括用于在装置1500上操作的任何存储对象或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1504可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPR0M),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
[0198]电源组件1506为装置1500的各种组件提供电力。电源组件1506可以包括电源管理系统,一个或至少两个电源,及其他与为装置1500生成、管理和分配电力相关联的组件。
[0199]多媒体组件1508包括在所述装置1500和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或至少两个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1508包括一个前置摄像头和/或后置摄像头。当设备1500处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
[0200]音频组件1510被配置为输出和/或输入音频信号。例如,音频组件1510包括一个麦克风(MIC),当装置1500处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1504或经由通信组件1516发送。在一些实施例中,音频组件1510还包括一个扬声器,用于输出音频信号。[0201 ] I/O接口 1512为处理组件1502和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
[0202]传感器组件1514包括一个或至少两个传感器,用于为装置1500提供各个方面的状态评估。例如,传感器组件1514可以检测到设备1500的打开/关闭状态,组件的相对定位,例如所述组件为装置1500的显示器和小键盘,传感器组件1514还可以检测装置1500或装置1500—个组件的位置改变,用户与装置1500接触的存在或不存在,装置1500方位或加速/减速和装置1500的温度变化。传感器组件1514可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1514还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1514还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
[0203]通信组件1516被配置为便于装置1500和其他设备之间有线或无线方式的通信。装置1500可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件1516经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件1516还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
[0204]在示例性实施例中,装置1500可以被一个或至少两个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子组件实现,用于执行上述方法。
[0205]在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1504,上述指令可由装置1500的处理器1520执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是R0M、随机存取存储器(RAM)、CD-R0M、磁带、软盘和光数据存储设备等。
[0206]—种非临时性计算机可读存储介质,当所述存储介质中的指令由上述装置1500的处理器执行时,使得上述装置1500能够执行一种终端中应用程序的处理方法,包括:
[0207]监听到所述终端中的应用程序的通信请求;
[0208]调用所述终端中的一进程;
[0209]通过所述进程将所述通信请求发送至所述应用程序所对应的服务器,并建立所述进程与所述服务器之间的长连接;
[0210]通过所述进程接收所述服务器针对所述通信请求返回的响应信息,并将所述响应信息发送至所述应用程序。
[0211]在一个实施例中,所述方法还包括:
[0212]在所述应用程序接收到所述响应信息之后,监测所述应用程序是否运行在后台或者是否被从内存中清除;
[0213]在所述应用程序运行在所述后台或者被从内存中清除,且所述应用程序尚未被退出时,按照预设唤醒周期唤醒所述应用程序,以使所述服务器保持与所述进程之间的所述长连接。
[0214]在一个实施例中,所述按照预设唤醒周期唤醒所述应用程序,以使所述服务器保持与所述进程之间的所述长连接,包括:
[0215]在按照所述预设唤醒周期唤醒所述应用程序之后,控制所述应用程序向所述进程发送心跳包;
[0216]通过所述进程将所述心跳包发送至所述服务器,以使所述服务器保持与所述进程之间的所述长连接。
[0217]在一个实施例中,所述方法还包括:
[0218]在按照所述预设唤醒周期唤醒所述应用程序之后,判断所述应用程序是否回到后台;
[0219]当所述应用程序回到所述后台时,关闭所述应用程序。
[0220]在一个实施例中,所述方法还包括:
[0221 ]确定在预设数目个所述预设唤醒周期内,所述应用程序被唤醒后,回到所述后台的总次数;
[0222]确定所述总次数与所述预设数目的比例是否大于或等于预设比例;
[0223]当所述比例大于或等于所述预设比例、且在所述预设数目个所述预设唤醒周期内所述应用程序最后一次被唤醒后再次回到所述后台时,控制所述应用程序向所述进程发送长连接关闭通知;
[0224]通过所述进程将所述长连接关闭通知发送至所述服务器,以使所述服务器断开与所述进程之间的所述长连接。
[0225]在一个实施例中,当所述应用程序包括至少两个时,所述方法还包括:
[0226]判断所述终端的当前剩余电量是否小于或等于预设剩余电量;
[0227]当所述当前剩余电量小于或等于所述预设剩余电量时,获取在预设历史时间段内、至少两个所述应用程序中前台运行时间最短的目标应用程序;
[0228]控制所述目标应用程序向所述进程发送长连接断开指令,以使所述进程断开与所述目标应用程序所对应的服务器之间的长连接。
[0229]在一个实施例中,所述控制所述目标应用程序向所述进程发送长连接关闭指令,包括:
[0230]将所述目标应用程序和所述当前剩余电量提示给用户,以使所述用户根据所述当前剩余电量确定是否断开所述进程与所述目标应用程序所对应的服务器之间的长连接;[0231 ]在接收到所述长连接断开指令时,控制所述目标应用程序向所述进程发送长连接断开指令。
[0232]在一个实施例中,所述进程包括:允许进行后台联网的系统进程。
[0233]本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0234]应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
【主权项】
1.一种终端中应用程序的处理方法,其特征在于,包括: 监听到所述终端中的应用程序的通信请求; 调用所述终端中的一进程; 通过所述进程将所述通信请求发送至所述应用程序所对应的服务器,并建立所述进程与所述服务器之间的长连接; 通过所述进程接收所述服务器针对所述通信请求返回的响应信息,并将所述响应信息发送至所述应用程序。2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 在所述应用程序接收到所述响应信息之后,监测所述应用程序是否运行在后台或者是否被从内存中清除; 在所述应用程序运行在所述后台或者被从内存中清除,且所述应用程序尚未被退出时,按照预设唤醒周期唤醒所述应用程序,以使所述服务器保持与所述进程之间的所述长连接。3.根据权利要求2所述的方法,其特征在于, 所述按照预设唤醒周期唤醒所述应用程序,以使所述服务器保持与所述进程之间的所述长连接,包括: 在按照所述预设唤醒周期唤醒所述应用程序之后,控制所述应用程序向所述进程发送心跳包; 通过所述进程将所述心跳包发送至所述服务器,以使所述服务器保持与所述进程之间的所述长连接。4.根据权利要求2所述的方法,其特征在于,所述方法还包括: 在按照所述预设唤醒周期唤醒所述应用程序之后,判断所述应用程序是否回到后台; 当所述应用程序回到所述后台时,关闭所述应用程序。5.根据权利要求4所述的方法,其特征在于,所述方法还包括: 确定在预设数目个所述预设唤醒周期内,所述应用程序被唤醒后,回到所述后台的总次数; 确定所述总次数与所述预设数目的比例是否大于或等于预设比例; 当所述比例大于或等于所述预设比例、且在所述预设数目个所述预设唤醒周期内所述应用程序最后一次被唤醒后再次回到所述后台时,控制所述应用程序向所述进程发送长连接关闭通知; 通过所述进程将所述长连接关闭通知发送至所述服务器,以使所述服务器断开与所述进程之间的所述长连接。6.根据权利要求1至5中任一项所述的方法,其特征在于,当所述应用程序包括至少两个时,所述方法还包括: 判断所述终端的当前剩余电量是否小于或等于预设剩余电量; 当所述当前剩余电量小于或等于所述预设剩余电量时,获取在预设历史时间段内、至少两个所述应用程序中前台运行时间最短的目标应用程序; 控制所述目标应用程序向所述进程发送长连接断开指令,以使所述进程断开与所述目标应用程序所对应的服务器之间的长连接。7.根据权利要求6所述的方法,其特征在于, 所述控制所述目标应用程序向所述进程发送长连接关闭指令,包括: 将所述目标应用程序和所述当前剩余电量提示给用户,以使所述用户根据所述当前剩余电量确定是否断开所述进程与所述目标应用程序所对应的服务器之间的长连接; 在接收到所述长连接断开指令时,控制所述目标应用程序向所述进程发送长连接断开指令。8.根据权利要求1至5中任一项所述的方法,其特征在于, 所述进程包括:允许进行后台联网的系统进程。9.一种终端中应用程序的处理装置,其特征在于,包括: 监听模块,用于监听到所述终端中的应用程序的通信请求; 调用模块,用于调用所述终端中的一进程; 第一处理模块,用于通过所述进程将所述通信请求发送至所述应用程序所对应的服务器,并建立所述进程与所述服务器之间的长连接; 第二处理模块,用于通过所述进程接收所述服务器针对所述通信请求返回的响应信息,并将所述响应信息发送至所述应用程序。10.根据权利要求9所述的装置,其特征在于,所述装置还包括: 监测模块,用于在所述应用程序接收到所述响应信息之后,监测所述应用程序是否运行在后台或者是否被从内存中清除; 唤醒模块,用于在所述应用程序运行在所述后台或者被从内存中清除,且所述应用程序尚未被退出时,按照预设唤醒周期唤醒所述应用程序,以使所述服务器保持与所述进程之间的所述长连接。11.根据权利要求10所述的装置,其特征在于, 所述唤醒模块包括: 控制子模块,用于在按照所述预设唤醒周期唤醒所述应用程序之后,控制所述应用程序向所述进程发送心跳包; 发送子模块,用于通过所述进程将所述心跳包发送至所述服务器,以使所述服务器保持与所述进程之间的所述长连接。12.根据权利要求10所述的装置,其特征在于,所述装置还包括: 判断模块,用于在按照所述预设唤醒周期唤醒所述应用程序之后,判断所述应用程序是否回到后台; 第三处理模块,用于当所述应用程序回到所述后台时,关闭所述应用程序。13.根据权利要求12所述的装置,其特征在于,所述装置还包括: 第一确定模块,用于确定在预设数目个所述预设唤醒周期内,所述应用程序被唤醒后,回到所述后台的总次数; 第二确定模块,用于确定所述总次数与所述预设数目的比例是否大于或等于预设比例; 第一控制模块,用于当所述比例大于或等于所述预设比例、且在所述预设数目个所述预设唤醒周期内所述应用程序最后一次被唤醒后再次回到所述后台时,控制所述应用程序向所述进程发送长连接关闭通知; 发送模块,用于通过所述进程将所述长连接关闭通知发送至所述服务器,以使所述服务器断开与所述进程之间的所述长连接。14.根据权利要求9至13中任一项所述的装置,其特征在于,所述装置还包括: 判断模块,用于当所述应用程序包括至少两个时,判断所述终端的当前剩余电量是否小于或等于预设剩余电量; 获取模块,用于当所述当前剩余电量小于或等于所述预设剩余电量时,获取在预设历史时间段内、至少两个所述应用程序中前台运行时间最短的目标应用程序; 第二控制模块,用于控制所述目标应用程序向所述进程发送长连接断开指令,以使所述进程断开与所述目标应用程序所对应的服务器之间的长连接。15.根据权利要求14所述的装置,其特征在于, 所述第二控制模块包括: 提示子模块,用于将所述目标应用程序和所述当前剩余电量提示给用户,以使所述用户根据所述当前剩余电量确定是否断开所述进程与所述目标应用程序所对应的服务器之间的长连接; 控制子模块,用于在接收到所述长连接断开指令时,控制所述目标应用程序向所述进程发送长连接断开指令。16.根据权利要求9至13中任一项所述的装置,其特征在于, 所述进程包括:允许进行后台联网的系统进程。17.—种终端中应用程序的处理装置,其特征在于,包括: 处理器; 用于存储处理器可执行指令的存储器; 其中,所述处理器被配置为: 监听到所述终端中的应用程序的通信请求; 调用所述终端中的一进程; 通过所述进程将所述通信请求发送至所述应用程序所对应的服务器,并建立所述进程与所述服务器之间的长连接; 通过所述进程接收所述服务器针对所述通信请求返回的响应信息,并将所述响应信息发送至所述应用程序。
【文档编号】G06F9/48GK105893129SQ201610195147
【公开日】2016年8月24日
【申请日】2016年3月30日
【发明人】史大龙, 孙超, 林锦滨
【申请人】北京小米移动软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1