应用状态转换方法、装置及移动终端与流程

文档序号:11180686阅读:381来源:国知局
应用状态转换方法、装置及移动终端与流程

本发明涉及终端技术领域,特别涉及一种应用状态转换方法、装置及移动终端。



背景技术:

随着移动操作系统的不断发展,移动操作系统中的应用(application)对后台运行的需求也越来越大。为了使应用能够在后台运行,移动操作系统需要提供相应的后台技术接口供应用调用。

相关技术中,苹果公司开发的移动操作系统(ios)提供的后台技术接口包括网络语音电话(英文:voiceoverinternetprotocol;简称:voip)后台接口、音乐播放后台接口、定位服务后台接口以及后台任务申请接口,应用通过调用相应的后台任务接口即可实现在后台状态(background)下运行。

当前,在后台状态下运行的应用由于各种原因(例如因为频繁被唤醒而被ios杀死,或者超过设定时长而被ios退出)将进入未运行状态(notrunning),导致应用无法在后台常驻。



技术实现要素:

为了解决相关技术中应用被ios杀死或退出而进入未运行状态,导致应用无法在后台常驻的问题,本发明实施例提供了一种应用状态转换方法、装置及移动终端。所述技术方案如下:

第一方面,提供了一种应用状态转换方法,用于移动终端中,该移动终端中安装有操作系统,且操作系统中安装有至少一个应用,该方法包括:

启动所述应用,所述应用通过所述操作系统提供的voip后台接口配置voip功能;

当确定所述应用开始从运行状态向未运行状态转换时,在所述转换完成前重启所述应用,所述运行状态包括前台状态或后台状态;

在重启所述应用的过程中向所述操作系统注册定时任务,所述定时任务用于指示所述操作系统周期性唤醒处于挂起状态的所述应用;

根据所述定时任务,周期性唤醒处于所述挂起状态的所述应用,唤醒后的所述应用处于后台状态。

通过预先为应用配置voip功能,使应用由运行状态向未运行状态转换时存在一段缓冲期,应用利用这段缓冲期自动重启并向操作系统注册定时任务,使得操作系统能够根据定时任务周期性唤醒重启后处于挂起状态的应用,从而实现了应用在后台的常驻。

结合第一方面,在第一方面的第一种可能的实施方式中,当所述应用处于所述前台状态时,所述方法还包括:

当检测到预定操作时,将所述应用从所述前台状态转换为所述挂起状态;

通过预定唤醒方式,唤醒处于所述挂起状态的所述应用;所述预定唤醒方式包括数据推送唤醒方式或定时任务唤醒方式中的至少一种。

当用户对移动终端进行了特定操作,使得应用由前台状态转换为挂起状态时,通过数据推送唤醒方式或定时任务唤醒方式将应用从挂起状态中唤醒,实现了应用的后台常驻。

结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,当通过所述数据推送唤醒方式唤醒所述应用时,所述通过预定唤醒方式,唤醒处于所述挂起状态的所述应用,包括:

当接收到应用服务器向所述应用推送的数据时,唤醒处于所述挂起状态的所述应用。

配置有voip功能的应用处于挂起状态时,终端接管该应用于应用服务器之间的连接,当接收到应用服务器发送的数据时,即唤醒处于挂起状态的应用,保证了应用能够及时对接收到数据进行处理。

结合第一方面的第一种可能的实施方式,在第一方面的第三种可能的实施方式中,当通过所述定时任务唤醒方式唤醒所述应用时,所述启动所述应用,包括:

在启动所述应用的过程中向所述操作系统注册所述定时任务;

所述通过预定唤醒方式,唤醒处于所述挂起状态的所述应用,包括:

根据所述定时任务,周期性唤醒处于所述挂起状态的所述应用。

为了避免应用由于长时间处于挂起状态而被操作系统杀死或退出,应用在启动阶段即注册定时任务,当处于挂起状态时,由操作系统根据定时任务定时唤醒该应用,避免该应用被操作系统杀死或退出,从而实现应用的后台常驻。

结合第一方面、第一方面的第一种可能的实施方式、第一方面的第二种可能的实施方式或第一方面的第三种可能的实施方式,在第一方面的第四种可能的实施方式中,唤醒后的所述应用维持第一时长的所述后台状态后重新转换为所述挂起状态。

唤醒后的应用在维持一段时间的后台状态后重新进入挂起状态,不仅保证了应用能够在后台运行,同时避免了因应用长时间占用后台而造成的处理资源紧缺。

结合第一方面的第一种可能的实施方式、第一方面的第二种可能的实施方式或第一方面的第三种可能的实施方式,在第一方面的第五种可能的实施方式中,所述将所述应用从前台状态转换为所述挂起状态之后,所述方法还包括:

接收所述应用从前台状态转换到后台状态的过程中发送的后台任务申请,所述后台任务申请用于请求所述操作系统允许所述应用维持第二时长的所述后台状态;

在所述第二时长结束时,将所述应用从所述后台状态转换为所述挂起状态。

其中,应用申请第二时长的后台运行时间,并在即将达到第二时长时主动停止代码执行,这样,操作系统可以将所述应用从后台状态转换为挂起状态。使得应用在获取额外后台运行时间的同时能够避免因超出限制被操作系统杀死,从而保证了应用在后台常驻。

第二方面,提供了一种应用状态转换装置,该装置包括至少一个单元,该至少一个单元用于实现上述第一方面或第一方面的可能的实施方式中所提供的应用状态转换方法,该应用状态转换装置包括:

启动单元,用于启动所述应用,所述应用通过所述操作系统提供的网络语音通话voip后台接口配置voip功能;

重启单元,用于当确定所述应用开始从运行状态向未运行状态转换时,在所述转换完成前重启所述应用,所述运行状态包括前台状态或后台状态;

注册单元,在重启所述应用的过程中向所述操作系统注册定时任务,所述定时任务用于指示所述操作系统周期性唤醒处于挂起状态的所述应用;

唤醒单元,用于根据所述定时任务,周期性唤醒处于所述挂起状态的所述应用,唤醒后的所述应用处于所述后台状态。

通过预先为应用配置voip功能,使应用由运行状态向未运行状态转换时存在一段缓冲期,应用利用这段缓冲期自动重启并向操作系统注册定时任务,使得操作系统能够根据定时任务周期性唤醒重启后处于挂起状态的应用,从而实现了应用在后台的常驻。

结合第二方面,在第二方面的第一种可能的实施方式中,所述装置,包括:

转换单元,用于当检测到预定操作时,将所述应用从所述前台状态转换为所述挂起状态;

所述唤醒单元,还用于通过预定唤醒方式,唤醒处于所述挂起状态的所述应用;所述预定唤醒方式包括数据推送唤醒方式或定时任务唤醒方式中的至少一种。

当用户对移动终端进行了特定操作,使得应用由前台状态转换为挂起状态时,通过数据推送唤醒方式或定时任务唤醒方式将应用从挂起状态中唤醒,实现了应用的后台常驻。

结合第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,当通过所述数据推送唤醒方式唤醒所述应用时,所述唤醒单元,用于当接收到应用服务器向所述应用推送的数据时,唤醒处于所述挂起状态的所述应用。

配置有voip功能的应用处于挂起状态时,终端接管该应用于应用服务器之间的连接,当接收到应用服务器发送的数据时,即唤醒处于挂起状态的应用,保证了应用能够及时对接收到数据进行处理。

结合第二方面的第一种可能的实施方式,在第二方面的第三种可能的实施方式中,当通过所述定时任务唤醒方式唤醒所述应用时;所述启动单元,还用于在启动所述应用的过程中向所述操作系统注册所述定时任务;

所述唤醒单元,还用于根据所述定时任务,周期性唤醒处于所述挂起状态的所述应用。

为了避免应用由于长时间处于挂起状态而被操作系统杀死或退出,应用在启动阶段即注册定时任务,当处于挂起状态时,由操作系统根据定时任务定时唤醒该应用,避免该应用被操作系统杀死或退出,从而实现应用的后台常驻。

结合第二方面、第二方面的第一种可能的实施方式、第二方面的第二种可能的实施方式或第二方面的第三种可能的实施方式,在第二方面的第四种可能的实施方式中,唤醒后的所述应用维持第一时长的所述后台状态后重新转换为所述挂起状态。

唤醒后的应用在维持一段时间的后台状态后重新进入挂起状态,不仅保证了应用能够在后台运行,同时避免了因应用长时间占用后台而造成的处理资源紧缺。

结合第二方面的第一种可能的实施方式、第二方面的第二种可能的实施方式或第二方面的第三种可能的实施方式,在第二方面的第五种可能的实施方式中,所述装置,还包括:

接收单元,用于接收所述应用从前台状态转换到后台状态的过程中发送的后台任务申请,所述后台任务申请用于请求所述操作系统允许所述应用维持第二时长的所述后台状态;

所述转换单元,还用于在所述第二时长结束时,将所述应用从所述后台状态转换为所述挂起状态。

其中,应用申请第二时长的后台运行时间,并在即将达到第二时长时主动停止代码执行,这样,操作系统可以将所述应用从后台状态转换为挂起状态。使得应用在获取额外后台运行时间的同时能够避免因超出限制被操作系统杀死,从而保证了应用在后台常驻。

第三方面,提供了一种移动终端,所述移动终端包括:处理器以及与所述处理器相连的存储器,其中,所述存储器用于存储一个或者一个以上的指令,所述指令被配置成由所述处理器执行;所述处理器通过执行所述存储器中的指令来实现第一方面或第一方面的可能的实施方式中所提供的应用状态转换方法,所述处理器,用于:

启动所述应用,所述应用通过所述操作系统提供的voip后台接口配置voip功能;

当确定所述应用开始从运行状态向未运行状态转换时,在所述转换完成前重启所述应用,所述运行状态包括前台状态或后台状态;

在重启所述应用的过程中向所述操作系统注册定时任务,所述定时任务用于指示所述操作系统周期性唤醒处于挂起状态的所述应用;

根据所述定时任务,周期性唤醒处于所述挂起状态的所述应用,唤醒后的所述应用处于后台状态。

通过预先为应用配置voip功能,使应用由运行状态向未运行状态转换时存在一段缓冲期,应用利用这段缓冲期自动重启并向操作系统注册定时任务,使得操作系统能够根据定时任务周期性唤醒重启后处于挂起状态的应用,从而实现了应用在后台的常驻。

结合第三方面,在第三方面的第一种可能的实施方式中,当所述应用处于所述前台状态时,所述处理器还用于:

当检测到预定操作时,将所述应用从所述前台状态转换为所述挂起状态;

通过预定唤醒方式,唤醒处于所述挂起状态的所述应用;所述预定唤醒方式包括数据推送唤醒方式或定时任务唤醒方式中的至少一种。

当用户对移动终端进行了特定操作,使得应用由前台状态转换为挂起状态时,通过数据推送唤醒方式或定时任务唤醒方式将应用从挂起状态中唤醒,实现了应用的后台常驻。

结合第三方面的第一种可能的实施方式,在第三方面的第二种可能的实施方式中,当通过所述数据推送唤醒方式唤醒所述应用时,所述处理器,用于:

当接收到应用服务器向所述应用推送的数据时,唤醒处于所述挂起状态的所述应用。

配置有voip功能的应用处于挂起状态时,终端接管该应用于应用服务器之间的连接,当接收到应用服务器发送的数据时,即唤醒处于挂起状态的应用,保证了应用能够及时对接收到数据进行处理。

结合第三方面的第一种可能的实施方式,在第三方面的第三种可能的实施方式中,当通过所述定时任务唤醒方式唤醒所述应用时,所述处理器,用于:

在启动所述应用的过程中向所述操作系统注册所述定时任务;

所述处理器,还用于:

根据所述定时任务,周期性唤醒处于所述挂起状态的所述应用。

为了避免应用由于长时间处于挂起状态而被操作系统杀死或退出,应用在启动阶段即注册定时任务,当处于挂起状态时,由操作系统根据定时任务定时唤醒该应用,避免该应用被操作系统杀死或退出,从而实现应用的后台常驻。

结合第三方面、第三方面的第一种可能的实施方式、第三方面的第二种可 能的实施方式或第三方面的第三种可能的实施方式,在第三方面的第四种可能的实施方式中,唤醒后的所述应用维持第一时长的所述后台状态后重新转换为所述挂起状态。

唤醒后的应用在维持一段时间的后台状态后重新进入挂起状态,不仅保证了应用能够在后台运行,同时避免了因应用长时间占用后台而造成的处理资源紧缺。

结合第三方面的第一种可能的实施方式、第三方面的第二种可能的实施方式或第三方面的第三种可能的实施方式,在第三方面的第五种可能的实施方式中,所述将所述应用从前台状态转换为所述挂起状态之后,所述处理器还用于:

接收所述应用从前台状态转换到后台状态的过程中发送的后台任务申请,所述后台任务申请用于请求所述操作系统允许所述应用维持第二时长的所述后台状态;

在所述第二时长结束时,将所述应用从所述后台状态转换为所述挂起状态。

其中,应用申请第二时长的后台运行时间,并在即将达到第二时长时主动停止代码执行,这样,操作系统可以将所述应用从后台状态转换为挂起状态。使得应用在获取额外后台运行时间的同时能够避免因超出限制被操作系统杀死,从而保证了应用在后台常驻。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。

图1是本发明实施例中应用的前台状态、后台状态、挂起状态和未运行状态之间转换关系的示意图;

图2a示出了本发明实施例提供的一种应用状态转换方法流程示意图;

图2b是图2a所示应用状态转换方法中不同状态之间转换关系的示意图;

图3a示出了本发明实施例提供的另一种应用状态转换方法的流程示意图;

图3b示出了本发明实施例提供的再一种应用状态转换方法的流程示意图;

图4a是利用apns推送服务实现消息推送的示意图;

图4b是利用本地推送服务实现消息推送的示意图;

图5示出了本发明实施例提供的一种应用状态转换装置的框图;

图6示出了本发明实施例提供的另一种应用状态转换装置的框图;

图7示出了本发明实施例提供的移动终端的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

为了方便理解,下面对本发明实施例中涉及的名词进行解释。

1、前台状态:指示应用在操作系统前台运行的状态。通常情况下,用户启动系统中的应用后,该应用即处于前台状态。

2、后台状态:指示应用处于操作系统后台且正在运行的状态,处于后台状态下的应用在系统后台执行应用代码。

3、挂起状态:指示应用处于操作系统后台但未执行代码的状态。

4、未运行状态:指示应用未启动或在运行过程中被系统终止运行的状态。

5、voip后台任务接口:ios提供的一种后台技术接口。使用该接口的应用进入ios后台后处于挂起状态,由ios接管ios设备与应用服务器之间的连接,当ios设备接收到应用服务器发送给该应用的数据时,ios将挂起状态下的应用唤醒,使其对接收到的数据进行处理。

6、后台任务申请接口:ios提供的一种后台技术接口。使用该接口的应用可以向ios申请一定时长的后台运行时间,通常情况下,应用通过使用该接口最多申请3分钟的后台运行时间。

请参考图1,其示出了应用的前台状态、后台状态、挂起状态和未运行状态之间的转换关系。为了方便描述,本实施例中以操作系统为ios为例进行说明,并不对本发明构成限定。

当用户点击应用图标时,ios即启动该应用图标对应的应用,相应的,该应用即处于前台状态。

当用户执行预定操作时,比如按下ios设备的主页(home)键时,处于前台状态的应用转换为挂起状态(图1中的转换101),不再执行应用代码;当用户重新点击该应用的应用图标时,该应用重新由挂起状态转换为前台状态。

对于voip一类的应用,为了使应用在操作系统后台时仍能运行,当ios设备的home键被按下时,应用即从前台状态转换为后台状态(即图1中的转换102);同时为了避免应用处于长时间的后台状态,当应用维持后台状态达到一定时长后,应用自动由后台状态转换为挂起状态(即图1中的转换103)。

由于代码缺陷等原因,处于前台状态的应用会崩溃而转为未运行状态(即图1中的转换104);相似的,处于后台状态的应用在被ios杀死或退出时也会转为未运行状态(即图1中的转换105)。应用进入未运行状态后,若用户未手动点击应用图标重启应用,该应用将保持未运行状态,无法实现应用在后台常驻,对于一些需要进行后台推送的应用来说,将影响推送消息的即时性。

为了实现应用在操作系统后台常驻,本发明实施例提供了一种应用状态转换方法,通过该方法能够使应用在后台自动重启,实现应用的后台常驻,下面采用示例性的实施例进行说明。

请参考图2a,其示出了本发明实施例提供的一种应用状态转换方法的流程示意图。本实施例以该方法应用于安装有ios的设备为例进行说明,该方法包括:

步骤202,启动应用,该应用通过操作系统提供的voip后台接口配置voip功能。

在配置ios应用的工程文件时,通过使用ios提供的voip后台接口配置voip功能,应用启动时即开启voip。

步骤204,当确定该应用开始从运行状态向未运行状态转换时,在转换完成前重启该应用,运行状态包括前台状态或后台状态。

开启voip的应用在从运行状态转换为未运行状态时,存在一定时长的缓冲期,例如,该应用需要2到3秒(可以称为缓冲期)才能从运行状态转换到未运行状态,操作系统可以利用该缓冲期自动重启应用。

步骤206,在重启应用的过程中向操作系统注册定时任务,定时任务用于指示操作系统周期性唤醒处于挂起状态的应用。

步骤208,根据该定时任务,周期性唤醒处于挂起状态的应用,唤醒后的应用处于后台状态。

ios根据应用注册的定时任务,保证在定时任务指示的周期内唤醒处于挂起 状态的应用,使其进入后台状态。进入后台状态的应用维持一段时间后,重新进入挂起状态。

如图2b所示,在图1所示状态转换的基础上,通过利用进入未运行状态之前的缓冲期重启应用,使其进入挂起状态(即图2b中的转换106);并根据重启过程中注册的定时任务周期性唤醒处于挂起状态的应用(即图2b中的转换107),从而实现应用在后台的常驻。

综上所述,本实施例提供的应用状态转换方法,通过利用应用从运行状态进入未运行状态之前的缓冲期重启应用,使其进入挂起状态,并根据重启过程中注册的定时任务周期性唤醒处于挂起状态的应用;解决了应用由于被ios杀死或退出而进入未运行状态,导致应用无法在后台常驻的问题;达到了利用自动重启和定时唤醒机制,实现应用在后台常驻的效果。

当用户执行某些操作使得应用由前台状态进入挂起状态时(比如点击home键),若该应用长时间处于挂起状态,操作系统会自动将其杀死或退出,导致应用无法在后台常驻。在图2a所示实施例的基础上,可以通过定时唤醒机制周期性唤醒处于挂起状态的应用,使其在后台常驻,下面采用一个实施例进行说明。

请参考图3a,其示出了本发明实施例提供的另一种应用状态转换方法的流程示意图。本实施例以该方法应用于安装有ios的设备为例进行说明,该方法包括:

步骤301,启动应用,该应用通过操作系统提供的voip后台接口配置voip功能。

在配置ios应用的工程文件时,通过使用ios提供的voip后台接口配置voip功能,应用启动时即开启voip。需要说明的是,配置有voip功能的应用并不局限于voip类应用,该应用也可以为具有消息推送功能的应用,比如邮件应用。

该应用启动后即以前台状态运行,并在接收到应用服务器发送的数据时,对该数据进行处理。比如,以该应用为邮件应用为例,当用户启动ios设备中的邮件应用时,邮件应用即在前台运行,当邮件服务器向该邮件应用推送邮件时,处于前台状态的邮件应用对接收到的邮件进行显示。

步骤302,当检测到预定操作时,将应用从前台状态转换为挂起状态。

ios设备中通常安装有较多的应用,用户切换不同的应用时,当前处于前台的应用需要被移至后台;并且,为了避免大量应用在后台运行影响ios的处理性能,被移至后台的应用需要转换为挂起状态。因此,当检测到预定操作时,比如检测到用户对home键的按压操作,应用即由前台状态进入挂起状态。

步骤303,通过预定唤醒方式,唤醒处于挂起状态的应用;预定唤醒方式包括数据推送唤醒方式或定时任务唤醒方式中的至少一种。

处于挂起状态的应用在后台并不运行代码,无法实现真正的后台常驻,因此,ios需要唤醒挂起状态下的应用,使其进入后台状态,从而实现真正的后台常驻。

在一种可能的实施方式中,由于应用开启了voip,在挂起状态下,ios将接管该应用与应用服务器之间的连接。当ios接收到应用服务器向该应用发送的数据时,ios即唤醒处于挂起状态的应用。唤醒后的应用维持第一时长的后台状态,并在后台状态下运行代码并处理接收到的数据,当达到第一时长时,该应用重新转换为挂起状态。比如,第一时长可以为10秒,即应用被ios唤醒后,维持10秒后台状态,并在达到10秒后重新进入挂起状态。需要说明的是,为了避免ios频繁唤醒应用,ios需要在单位时间内对采用数据推送唤醒方式唤醒应用的次数进行限制,比如,可以设置5分钟内唤醒应用的次数至多为15次,当超出该限制时,ios即杀死该应用。

在另一种可能的实施方式中,应用在启动阶段即向ios注册定时任务,该定时任务用于指示ios周期性唤醒处于挂起状态的应用。相应的,ios根据应用注册的定时任务,周期性的将挂起状态下的应用唤醒。唤醒后的应用维持第一时长的后台状态,并在达到第一时长时,重新转换为挂起状态。比如,该定时任务的定时任务周期可以被设置为600秒,第一时长可以为10秒,即ios保证在600内秒唤醒一次处于挂起状态的应用,唤醒后的应用维持10秒后台状态后重新进入挂起状态。采用定时唤醒的方式唤醒应用,能够有效避免应用因长时间处于挂起状态而被ios杀死或退出。

需要说明的一点是,ios可以根据中央处理器(英文:centralprocessingunit;简称:cpu)或内存的使用率确定相邻两次唤醒之间的时间间隔,即相邻两次唤醒之间的时间间隔小于定时任务周期,且不为定值。比如,以定时任务的定时任务周期为600秒为例,当cpu或内存的使用率大于阈值时,ios可以在距 上次唤醒580秒后再次唤醒应用;当cpu或内存的使用率小于阈值时,ios可以在距上次唤醒500秒后再次唤醒应用。

需要说明的另一点是,为了避免ios频繁唤醒应用,ios需要对定时任务的定时任务周期进行限制,比如,可以限制定时任务周期至少为600秒,若注册的定时任务的定时任务周期大于等于600秒,则定时任务注册成功;若注册的定时任务的定时任务周期小于600秒,则定时任务注册失败。

步骤304,当确定应用开始从运行状态向未运行状态转换时,在转换完成前重启应用,运行状态包括前台状态或后台状态。

导致应用进入未运行状态的原因多种多样,比如,处于前台状态的应用由于代码缺陷导致崩溃时,应用会由前台状态转化为未运行状态;又比如,当处于后台状态的应用被频繁唤醒时,ios将该应用杀死或退出,使得应用由后台状态进入位运行状态。需要说明的是,本发明实施例并不对用户手动退出应用使应用进入未运行状态的情况进行讨论。

对于开启voip的应用,应用在转换为未运行状态之前,会经过一定时长的缓冲期,本实施例中,应用即利用该缓冲期进行重启,并在重启后进入挂起状态。

步骤305,在重启应用的过程中向操作系统注册定时任务;定时任务用于指示操作系统周期性唤醒处于挂起状态的应用。

应用在重启过程中,向ios注册定时任务,指示ios周期性唤醒处于挂起状态的应用。若注册的定时任务的定时任务周期达到预设时长,则注册成功;若注册的定时任务的定时任务周期未达到预设时长,则注册失败,其中该定时任务周期可以为600秒。

步骤306,根据定时任务,周期性唤醒处于挂起状态的应用;唤醒后的应用处于后台状态。

应用成功注册定时任务后,操作系统即根据定时任务设置的定时任务周期,周期性的唤醒处于挂起状态的应用。唤醒后的应用维持第一时长的后台状态,并在达到第一时长时,重新转换为挂起状态。

综上所述,本实施例提供的应用状态转换方法,通过利用应用从运行状态进入未运行状态之前的缓冲期重启应用,使其进入挂起状态,并根据重启过程中注册的定时任务周期性唤醒处于挂起状态的应用;解决了应用由于被ios杀 死或退出而进入未运行状态,导致应用无法在后台常驻的问题;达到了利用自动重启和定时唤醒机制,实现应用在后台常驻的效果。

本实施例中,通过预先对应用的工程文件进行配置,并设置唤醒机制,当应用处于挂起状态时,ios能够通过数据推送唤醒方式或定时任务唤醒方式唤醒应用;当应用进入未运行状态时,能够通过自动重启机制实现应用自动重启,并在重启后由ios定时唤醒进入后台状态,实现真正意义上的应用后台常驻。

在图3a所示实施例的基础上,当ios指示应用由前台状态转换为挂起状态时,该应用可以通过ios提供的后台任务申请接口,申请额外的后台运行时间,从而进一步延长应用处于后台状态的时间。如图3b所示,上述步骤302之后,还可以包括如下步骤。

步骤307,接收应用从前台状态转换到后台状态的过程中发送的后台任务申请,后台任务申请用于请求操作系统允许该应用维持第二时长的后台状态。

当ios设备的home键被按下时,处于前台状态的应用即通过后台任务申请接口向ios发送后台任务申请,申请维持第二时长的后台状态,其中,该第二时长可以为3分钟。

通过这一后台任务申请机制,ios设备的home键被按下后,应用不会直接从前台状态转换为挂起状态,而是能够继续维持一段时间的后台状态,并在后台状态下执行代码并对接收到的数据进行处理,能够提高应用接收并处理数据的时效性。

需要说明的是,在home键被按下时向ios发送后台任务申请这一机制需要预先在应用的工程文件中进行配置。

步骤308,在第二时长结束时,将该应用从后台状态转换为挂起状态。

为了避免应用因超出后台限制而被ios杀死,应用在home键被按下后的第二时长内维持后台状态并运行代码,并在接近第二时长结束时,自动停止运行代码,ios检测到应用停止运行代码后,使应用进入挂起状态,防止因超出后台限制被ios杀死或退出。需要说明的是,应用主动停止运行代码可以通过调用ios提供的相应接口来实现,本实施例在此不再赘述。

本实施例中,应用由前台状态进入后台状态的过程中,通过后台任务申请接口申请额外的后台运行时间,进一步延长了应用处于后台状态的时间,对于 即时性要求较高的应用来说,能够提高应用接收并处理数据的时效性。

上述实施例提供的应用状态转换方法,可以用于有消息推送需求的应用中,下面以该应用状态转换方法用于邮件应用为例进行示意性说明。

如图4a所示,当ios中的邮件应用未通过上述方法进行预先配置时,邮件服务器41向ios设备42中的邮件应用推送消息时,需要先将消息发送至苹果推送通知服务(英文:applepushnotificationservice;简称:apns)服务器43,由apns服务器43解析出该消息中携带的ios设备的设备信息,再将该消息转发到对应的ios设备42上,并最终推送到邮件应用,显然,使用apns推送服务接收推送的消息时需要依赖apns服务器。

若不采用apns推送服务而采用本地推送服务接收消息,则无需依赖apns服务器,但要求ios设备中的邮件应用常驻后台,而运用上述实施例提供的应用状态转换方法正可以实现应用后台常驻。

在应用工程文件配置阶段,开发人员为邮件应用配置应用工程文件时,开启voip功能;在应用启动阶段,邮件应用向ios注册定时任务,指示ios周期性唤醒应邮件应用,避免长时间处于挂起状态邮件应用被ios杀死后退出;邮件应用在前台运行过程中,当用户按压home键时,邮件应用调用ios提供的后台任务申请接口维持3分钟(第二时长)的额外后台状态,并在接近3分钟时停止执行代码,ios检测到应用停止执行代码时,将应用转换到挂起状态;在挂起状态下,由于邮件应用开启voip功能,ios接管邮件应用与邮件服务器之间的连接,并在接收到邮件服务器推送的消息时,唤醒邮件应用处理推送的消息,实现邮件应用的后台常驻。

当邮件应用由前台状态或后台状态进入未运行状态时,邮件应用利用进入未运行状态之前的缓冲期重启应用,并在重启时向ios注册定时任务。重启后的邮件应用在ios后台处于挂起状态,直至ios按照定时任务周期性将其唤醒,进入后台状态,从而实现应用的后台常驻。

如图4b所示,通过上述实施例提供的应用状态转换方法可以实现邮件应用在后台常驻,邮件应用可以采用本地推送服务接收邮件服务器推送的消息,即邮件服务器41能够直接向ios设备42中的邮件应用推送消息,避免了对apns服务器的依赖。

请参考图5,其示出了本发明实施例提供的一种应用状态转换装置的框图。该应用状态转换装置可以通过软件、硬件或者两者的结合实现成为移动终端的全部或者一部分。该应用状态转换装置可以包括:启动单元510、重启单元520、注册单元530和唤醒单元540。

启动单元510,用于启动应用,应用通过操作系统提供的voip后台接口配置voip功能;

重启单元520,用于当确定应用开始从运行状态向未运行状态转换时,在转换完成前重启应用,运行状态包括前台状态或以后台状态;

注册单元530,用于在重启应用的过程中向操作系统注册定时任务,定时任务用于指示操作系统周期性唤醒处于挂起状态的应用;

唤醒单元540,用于根据定时任务,周期性唤醒处于挂起状态的应用,唤醒后的应用处于后台状态。

综上所述,本实施例提供的应用状态转换装置,通过利用应用从运行状态进入未运行状态之前的缓冲期重启应用,使其进入挂起状态,并根据重启过程中注册的定时任务周期性唤醒处于挂起状态的应用;解决了应用由于被ios杀死或退出而进入未运行状态,导致应用无法在后台常驻的问题;达到了利用自动重启和定时唤醒机制,实现应用在后台常驻的效果。

请参考图6,其示出了本发明实施例提供的另一种应用状态转换装置的框图。该应用状态转换装置可以通过软件、硬件或者两者的结合实现成为移动终端的全部或者一部分。在图5所示的基础上,该应用状态转换装置可以进一步包括:

转换单元550,用于当检测到预定操作时,将应用从前台状态转换为挂起状态;

唤醒单元540,还用于通过预定唤醒方式,唤醒处于挂起状态的应用;预定唤醒方式包括数据推送唤醒方式或定时任务唤醒方式中的至少一种。

在一种可能的实施方式中,当通过数据推送唤醒方式唤醒应用时;

唤醒单元540,用于当接收到应用服务器向应用推送的数据时,唤醒处于挂起状态的应用。

在一种可能的实施方式中,当通过定时任务唤醒方式唤醒应用时;

启动单元510,还用于在启动应用的过程中向操作系统注册定时任务;

唤醒单元540,还用于根据定时任务,周期性唤醒处于挂起状态的应用。

在一种可能的实施方式中,唤醒后的应用维持第一时长的后台状态后重新转换为挂起状态。

在一种可能的实施方式中,该装置,还包括:

接收单元560,用于接收所述应用从前台状态转换到后台状态的过程中发送的后台任务申请,所述后台任务申请用于请求所述操作系统允许所述应用维持第二时长的所述后台状态。

所述转换单元550,还用于在所述第二时长结束时,将所述应用从所述后台状态转换为所述挂起状态。

综上所述,本实施例提供的应用状态转换装置,通过利用应用从运行状态进入未运行状态之前的缓冲期重启应用,使其进入挂起状态,并根据重启过程中注册的定时任务周期性唤醒处于挂起状态的应用;解决了应用由于被ios杀死或退出而进入未运行状态,导致应用无法在后台常驻的问题;达到了利用自动重启和定时唤醒机制,实现应用在后台常驻的效果。

本实施例中,通过预先对应用的工程文件进行配置,并设置唤醒机制,当应用处于挂起状态时,ios能够通过数据推送唤醒方式或定时任务唤醒方式唤醒应用;当应用进入未运行状态时,能够通过自动重启机制实现应用自动重启,并在重启后由ios定时唤醒进入后台状态,实现真正意义上的应用后台常驻。

本实施例中,应用由前台状态进入后台状态的过程中,通过后台任务申请接口申请额外的后台运行时间,进一步延长了应用处于后台状态的时间,对于即时性要求较高的应用来说,能够提高应用接收并处理数据的时效性。

请参考图7,其示出了本发明实施例提供的移动终端700的结构示意图。该移动终端700可以是安装有ios的智能手机、平板电脑、电子书阅读器或mp4(英文:movingpictureexpertsgroupaudiolayeriv,简称:mp4)播放器等等。

移动终端700可以包括:处理器710、存储器720和显示屏730等部件。本领域技术人员可以理解,图7中示出的移动终端700的结构并不构成对移动终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同 的部件布置。其中:

处理器710是移动终端700的控制中心,利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在存储器720内的软件程序和/或模块,以及调用存储在存储器720内的数据,执行移动终端700的各种功能和处理数据,从而对移动终端700进行整体控制。可选的,处理器710可包括一个或多个处理核心;可选的,处理器710可集成应用处理器、调制解调处理器以及协处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信,协处理器用于处理传感器数据或触摸屏数据,比如,协处理器包括触控集成电路。可以理解的是,上述调制解调处理器和协处理器也可以不集成到处理器710中,而以独立的处理器存在。

存储器720可用于存储软件程序以及模块。处理器710通过运行存储在存储器720的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器720可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统721、注册单元722、唤醒单元723和至少一个应用程序724;存储数据区可存储根据移动终端700的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器720可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(英文:staticrandomaccessmemory,简称:sram),电可擦除可编程只读存储器(英文:electricallyerasableprogrammableread-onlymemory,简称:eeprom),可擦除可编程只读存储器(英文:erasableprogrammablereadonlymemory,简称:eprom),可编程只读存储器(英文:programmableread-onlymemory,简称:prom),只读存储器(英文:readonlymemory,简称:rom),磁存储器,快闪存储器,磁盘或光盘。相应地,存储器720还可以包括存储器控制器,以提供处理器710对存储器720的访问。

显示屏730是具有显示功能的显示组件,该显示屏730可以为触摸屏或非触摸屏。

移动终端700还包括给各个部件供电的电源(图中未示出),优选的,电源可以通过电源管理系统与处理器710逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

尽管未示出,移动终端700还可以包括摄像头、蓝牙模块等,在此不再赘述。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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