后台应用的唤醒方法及装置、电子设备与流程

文档序号:12595701阅读:529来源:国知局
后台应用的唤醒方法及装置、电子设备与流程

本申请涉及应用控制技术领域,更具体地,是后台应用的唤醒方法、后台应用的唤醒装置及电子设备。



背景技术:

通常地,手机等电子设备上可以安装应用,应用可以为用户提供相应的功能。应用可以被切换至电子设备的后台,切换至后台的应用可以称为后台应用。

可以知道的是,为了降低对电子设备资源的耗费,后台应用被系统控制进入休眠状态,休眠的后台应用会暂停程序的运行,因此,若想要应用重新开始执行自身的程序,需要一种技术方案,来唤醒处于休眠状态的后台应用,以实现其自身的功能。



技术实现要素:

有鉴于此,本申请提供了一种后台应用的唤醒方法,用以实现对后台应用的唤醒。另外,本申请还提供了一种后台应用的唤醒装置及电子设备,用以保证所述方法在实际中的应用及实现。

为实现所述目的,本申请提供的技术方案如下:

本申请的第一方面提供了一种后台应用的唤醒方法,包括:

响应于用户对目标应用的切换至后台操作,将所述目标应用切换至后台,并调用目标应用的切换到后台的通知方法;所述切换到后台的通知方法包括:子线程创建函数及子线程睡眠函数;

执行所述子线程创建函数,以创建与所述目标应用具有绑定关系的子线程;

执行所述子线程睡眠函数,以睡眠所述子线程,在达到目标唤醒条件时, 唤醒所述子线程;

触发所述子线程唤醒切换至后台的目标应用。

本申请的第二方面提供了一种后台应用的唤醒装置,包括:

通知方法调用模块,用于响应于用户对目标应用的切换至后台操作,将所述目标应用切换至后台,并调用目标应用的切换到后台的通知方法;所述切换到后台的通知方法包括:子线程创建函数及子线程睡眠函数;

子线程创建模块,用于执行所述子线程创建函数,以创建与所述目标应用具有绑定关系的子线程;

子线程睡眠模块,用于执行所述子线程睡眠函数,以睡眠所述子线程;

子线程唤醒模块,用于在达到目标唤醒条件时,唤醒所述子线程;

子线程唤醒应用模块,用于触发所述子线程唤醒切换至后台的目标应用。

本申请的第三方面提供了一种电子设备,包括上述的后台应用的唤醒装置。

由以上可知,本申请具有如下有益效果:

本申请提供了一种后台应用的唤醒方法实施例,本实施例响应于用户对目标应用的切换至后台操作,将所述目标应用切换至后台,并调用目标应用的切换至后台的通知方法,该通知方法中包含子线程创建函数及子线程睡眠函数,执行子线程创建函数,以为该目标应用创建子线程,并且执行子线程睡眠函数,以睡眠该子线程,在满足目标唤醒条件时,本实施例便唤醒该子线程,进而触发子线程唤醒切换至后台的目标应用。可见,本实施例可以为切换至后台的目标应用创建并睡眠子线程,在满足唤醒条件后,通过唤醒子线程来唤醒后台的目标应用。

当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不 付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请提供的后台应用的唤醒方法实施例1的流程图;

图2为本申请提供的预埋子线程方式的流程图;

图3为本申请提供的后台应用的唤醒方法实施例2的流程图;

图4为本申请提供的后台应用的唤醒装置实施例1结构示意图;

图5为本申请提供的后台应用的唤醒装置实施例2结构示意图;

图6为本申请提供的一种终端硬件结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

参见图1,其示出了本申请提供的后台应用的唤醒方法实施例1的流程。如图1所示,本实施例可以具体包括以下步骤S101~步骤S104。

步骤S101:响应于用户对目标应用的切换至后台操作,将目标应用切换至后台,并调用目标应用的切换到后台的通知方法;切换到后台的通知方法包括:子线程创建函数及子线程睡眠函数。

其中,本实施例可以应用在电子设备上,电子设备上安装有各种应用,应用可以从电子设备的前台切换至后台,进入后台的应用处于休眠状态。在实施中,应用可以是通过以下两种方式被切换至后台的。具体地:

第一种方式中,应用在电子设备的前台运行时,用户可以在电子设备上,对应用触发切换至后台的操作,以使应用从前台切换至后台。其中,用户触发的应用即目标应用。

例如,手机中安装有闹钟应用,用户可以在设置界面中,设置闹钟的响铃时间及响铃音乐,并可以在设置完成后操作退出按钮,以退出设置界面。可以知道的是,用户的退出操作即上文提及的切换至后台操作,切换至后台操作可以生成切换指令,该切换指令控制闹钟应用从前台切换至后台。

第二种方式中,应用是自动从前台切换至后台的。例如,录像设备中安装有相机应用,假设相机应用可以在摄影完成后自动生成切换指令,使相机应用由前台切换至后台。

需要说明的是,以上所举示例中,应用均是从前台切换至后台的,但是,本实施例并不局限于由前台切换至后台的情况,在实际应用中,应用还可以是从其他状态如未开启状态切换至后台的。

应用被切换至后台后处于休眠状态,需要被唤醒才能执行应用的功能方法。因此,为了满足此种应用的需求,可以在此种应用的代码文件中,预先编写相应的切换到后台的通知方法,切换到后台的通知方法中包括:子线程创建函数以及子线程睡眠函数。可选地,在IOS系统的应用场景中,该切换到后台的通知方法可以为applicationDidEnterBackground方法。另外,为了便于描述,可以将预先编写有此种通知方法的应用称为目标应用。

若发现目标应用被切换至后台,则本实施例便调用该目标应用的切换到后台的通知方法,以触发该通知方法内的函数的执行。

步骤S102:执行子线程创建函数,以创建与目标应用具有绑定关系的子线程。

具体地,首先执行子线程创建函数,该函数用于创建子线程,该子线程用于唤醒休眠的后台应用。需要说明的是,子线程创建函数在目标应用的切换到后台的通知方法内,因此,该子线程与目标应用之间具有绑定关系。

步骤S103:执行子线程睡眠函数,以睡眠子线程,在达到目标唤醒条件时,唤醒子线程。

其中,创建子线程后,还需要执行子线程睡眠函数,该函数用于睡眠该子线程。需要说明的是,创建的子线程属于应用级别的线程,其并非存在于电子设备的底层系统中。因此,可以对其执行睡眠动作。被睡眠的该线程并不会占用电子设备的资源,从而可以降低资源消耗。

由以上可知,子线程已被睡眠,因此,需要首先唤醒该子线程。具体地,监测处于睡眠状态的线程的状态参数,一旦状态参数满足目标唤醒条件,便唤醒该睡眠状态的线程。

在实施中,目标唤醒条件可以是时间值,也可以是外部向应用发送的唤醒指令。详细内容请参见下文,此处并不赘述。

步骤S104:触发子线程唤醒切换至后台的目标应用。

其中,子线程被唤醒后,该子线程便可以唤醒处于休眠状态的目标应用,目标应用被唤醒后,便可以执行自身的应用操作。需要说明的是,应用操作表示的是目标应用自身需要实现的功能。目标应用不同,其所实现的功能可能不同,因此,应用操作便不同。例如,闹钟应用被唤醒后,执行的是响铃操作;相机应用被唤醒后,执行的是摄像操作。

由以上的技术方案可知,本申请提供了一种后台应用的唤醒方法实施例,本实施例响应于用户对目标应用的切换至后台操作,将目标应用切换至后台,并调用目标应用的切换至后台的通知方法,该通知方法中包含子线程创建函数及子线程睡眠函数,执行子线程创建函数,以为该目标应用创建子线程,并且执行子线程睡眠函数,以睡眠该子线程,在满足目标唤醒条件时,本实施例便唤醒该子线程,进而触发子线程唤醒切换至后台的目标应用。可见,本实施例可以为切换至后台的目标应用创建并睡眠子线程,在满足唤醒条件后,通过唤醒子线程来唤醒后台的目标应用。

总结来讲,以上后台应用的唤醒方法实施例1可以被称为预埋子线程方式,预埋子线程的具体流程可以参见图2。如图2所示,应用切换至后台后,应用的主线程进入休眠状态,创建子线程,该子线程被控制进入睡眠状态,直至满足目标唤醒条件,子线程被唤醒,被唤醒的子线程唤醒主线程,则主线程便执行对应的应用操作。

需要说明的是,以上后台应用的唤醒方法实施例1可以应用在IOS系统中。可以知道的是,IOS系统为封闭式系统,切换至后台休眠的目标应用不能调用IOS系统中的私有库,因此,便不可以调用IOS系统提供的系统进程,来唤醒目标应用。

虽然,IOS系统为切换至后台处于休眠状态的应用,提供有handleEventsForBackgroundURLSession回调方案,但是,该种回调方案是在应用被切换至后台后,执行一些必要的任务处理操作,如下载、加载等。但是,该些任务处理操作是预先设置在回调方案中的,最重要的是,任务处理操作并不包含唤醒操作,因此,并不能使用该回调方案来唤醒切换至后台的应用。

但是,针对IOS系统的封闭性,以上后台应用的唤醒方法实施例1可以在目标应用的切换到后台的通知方法中执行子线程创建函数,以创建应用级别的子线程。与IOS系统的系统级别进程不同,应用级别的子线程是可以被触发去唤醒目标应用的,从而有效解决了IOS系统中切换至后台的应用如何被唤醒的问题。

在实际应用中,睡眠及唤醒子线程的具体实现方式可以有两种。第一种是,通过监测子线程的睡眠时长来确定是否需要唤醒线程;第二种是,根据应用外部发送的目标唤醒指令来唤醒线程。以下分别对该两种实现方式进行详细说明。

有关第一种实现方式,可以参见图3,其示出了本申请提供的后台应用的唤醒方法实施例2的流程。如图3所示,本实施例可以具体包括步骤S201~步骤S206。需要说明的是,有关步骤S201、步骤S202及步骤S206的说明可以参见上述后台应用的唤醒方法实施例1,以下并不赘述,仅对其他步骤进行详细说明。

步骤S201:响应于用户对目标应用的切换至后台操作,将目标应用切换至后台,并调用目标应用的切换到后台的通知方法;切换到后台的通知方法包括:子线程创建函数及子线程睡眠函数。

步骤S202:执行子线程创建函数,以创建与目标应用具有绑定关系的子线程。

步骤S203:确定目标睡眠时长。

其中,目标睡眠时长用来作为唤醒子线程的时长依据。可选地,确定目标睡眠时长的方式也可以有两种,分别包括以下步骤A及步骤B。

步骤A:获取用户输入的时间值作为目标睡眠时长。

其中,用户可以在目标应用的时长设置界面中,设置目标应用的睡眠时长,从而,本实现方式便将用户设置的时长值确定为目标睡眠时长。

例如,手机上安装有闹钟应用,用户在闹钟设置界面中,设置3小时后进行响铃提醒,本实现方式便将用户设置的3小时作为目标睡眠时长,从而,在3小时后唤醒睡眠的子线程,该子线程被唤醒后便可唤醒闹钟应用,从而使闹钟应用进行响铃提醒。

步骤B:获取预设时间值作为目标睡眠时长。

其中,目标应用中可以预先设置有默认的睡眠时长值,如2分钟,当然,该数值仅仅是说明示例,本申请并不局限于此。本实现方式直接将该预设的时长值作为目标睡眠时长。

可见,通过以上步骤A或步骤B的方法可以确定出目标睡眠时长。

步骤S204:执行睡眠至指定日期方法,以维持子线程在目标睡眠时长内睡眠。

其中,维持子线程的睡眠方式可以通过调用睡眠至指定日期的方法实现。

具体地,在IOS系统中,睡眠至指定日期的方法为sleepUntilDate方法,该方法表示维持子线程睡眠至某一时间点。调用睡眠至指定日期(sleepUntilDate)方法时,需要向该方法传入调用参数,调用参数为睡眠截止时间。调用参数用于使线程睡眠至该睡眠截止时间后自动唤醒。

例如,用户设置闹钟应用在3小时后唤醒,用户进行此设置时的时间为2015年10月21日07时00分,则调用睡眠至指定日期(sleepUntilDate)方法时,传入的调用参数为2015年10月21日10时00分,从而该调用睡眠至指定日期(sleepUntilDate)方法在2015年10月21日10时00分唤醒闹钟应用。

另外,维持子线程睡眠还可以通过其他方式实现。例如,调用睡眠时长方法,即sleepForTimeInterval方法,该方法表示维持子线程某一段时长的睡眠。同理,调用该方法时,也需要向其传入调用参数,但该调用参数仅仅为睡眠的时间长度,睡眠时长(sleepForTimeInterval)方法可以依据该调用参数,确定出线程需要睡眠至哪一时间点。

同样以上一示例进行举例说明,若调用睡眠时长(sleepForTimeInterval)方法,则传入的调用参数为3小时。

步骤S205:在子线程的睡眠时长达到目标睡眠时长时,唤醒处于睡眠状态的子线程。

其中,目标睡眠时长为唤醒子线程的条件,因此,在子线程的睡眠时长达到该目标睡眠时长时,便唤醒子线程。

步骤S206:触发子线程唤醒切换至后台的目标应用。

在本实施例中,使用目标睡眠时长来维持子线程的睡眠,并在子线程的 睡眠时长达到该目标睡眠时长时,便唤醒子线程。

当然,如上,唤醒睡眠状态的子线程还可以使用第二种实现方式。具体地,以上后台应用的唤醒方法实施例1中步骤S103(在达到目标唤醒条件时,唤醒子线程)的实现方式可以是:响应于用户对目标应用的唤醒操作,唤醒子线程。

其中,电子设备上安装有目标应用,该目标应用可以实时接收唤醒指令,该唤醒指令可以是依据用户对目标应用的唤醒操作生成的,或者,是电子设备的系统生成的,或者,是电子设备上安装的其他应用生成的。

例如,用户对目标应用的唤醒操作可以是,用户在电子设备上点击后台应用的查看按键,以使电子设备显示当前后台运行的若干后台应用,该若干应用中包含目标应用,用户选择该目标应用,以使该目标应用从后台唤醒到前台。其中,用户在显示的若干后台应用中选择目标应用的操作,即对目标应用的唤醒操作。

可见,与上述后台应用的唤醒方法实施例2不同,本实现方式中,子线程被唤醒依据的是用户的唤醒操作生成的唤醒指令。

需要说明的是,上述后台应用的唤醒方法实施例2中步骤S204(执行睡眠至指定日期方法,以维持子线程在目标睡眠时长内睡眠)的实现方式可以具体为以下步骤,即:在系统时间管理进程中,注册子线程的睡眠时间为目标睡眠时长,以维持子线程在目标睡眠时长内睡眠。

相应地,上述后台应用的唤醒方法实施例2中步骤S205(在子线程的睡眠时长达到目标睡眠时长时,唤醒处于睡眠状态的子线程)的实现方式可以具体为以下步骤,即:响应于系统时间管理进程的唤醒指令,唤醒处于睡眠状态的子线程。

具体地,电子设备的系统中,维持有系统时间管理进程,该进程用于为系统自身及所有应用提供有关时间的管理功能。本申请可以利用系统时间管理进程的管理功能,来实现对创建的子线程的睡眠及唤醒。

在睡眠子线程前,已经确定出目标睡眠时长,因此可以向系统时间管理进程注册该子线程,并且通知该系统时间管理进程子线程的目标睡眠时长。 接下来,便可以控制子线程进入睡眠状态,系统时间管理进程监测发现到达目标睡眠时长后,便向子线程发送唤醒指令,以唤醒睡眠的子线程。

子线程被唤醒后,其可以唤醒切换至后台的目标应用。具体地,目标应用的切换到后台的通知方法中,不仅包含有子线程创建函数及子线程睡眠函数,而且,还包含有目标应用的目标方法。

重要的是,在切换到后台的通知方法中,该功能性方法设置在子线程睡眠函数的后面,在子线程睡眠函数将子线程睡眠且唤醒后,便可以执行目标应用的目标方法。因此,可以认为子线程被唤醒后绑定有目标应用的目标方法。

相应地,以上后台应用的唤醒方法实施例1中步骤S104(触发子线程唤醒切换至后台的目标应用)的实现方式可以包括:在子线程被唤醒后,执行目标应用的目标方法。

其中,目标应用的目标方法表示的是目标应用的功能性方法,其实现的是目标应用的具体功能,如闹钟应用的响铃方法。

以下对本申请提供的后台应用的唤醒装置实施例进行介绍,需要说明的是,下文有关后台应用的唤醒装置实施例的说明可以参见上文提供的后台应用的唤醒方法实施例,以下并不赘述。

与上述后台应用的唤醒方法实施例1相对应,本申请提供了一种后台应用的唤醒装置实施例1。如图4所示,本实施例可以具体包括:通知方法调用模块401、子线程创建模块402、子线程睡眠模块403、子线程唤醒模块404及子线程唤醒应用模块405;其中:

通知方法调用模块401,用于响应于用户对目标应用的切换至后台操作,将目标应用切换至后台,并调用目标应用的切换到后台的通知方法;切换到后台的通知方法包括:子线程创建函数及子线程睡眠函数;

子线程创建模块402,用于执行子线程创建函数,以创建与目标应用具有绑定关系的子线程;

子线程睡眠模块403,用于执行子线程睡眠函数,以睡眠子线程;

子线程唤醒模块404,用于在达到目标唤醒条件时,唤醒子线程;

子线程唤醒应用模块405,用于触发子线程唤醒切换至后台的目标应用。

由以上技术方案可知,本申请提供了一种后台应用的唤醒装置实施例,本实施例中通知方法调用模块401响应于用户对目标应用的切换至后台操作,将目标应用切换至后台,并调用目标应用的切换至后台的通知方法,该通知方法中包含子线程创建函数及子线程睡眠函数,子线程创建模块402执行子线程创建函数,以为该目标应用创建子线程,并且子线程睡眠模块403执行子线程睡眠函数,以睡眠该子线程,在满足目标唤醒条件时,子线程唤醒模块404便唤醒该子线程,进而子线程唤醒应用模块405触发子线程唤醒切换至后台的目标应用。可见,本实施例可以为切换至后台的目标应用创建并睡眠子线程,在满足唤醒条件后,通过唤醒子线程来唤醒后台的目标应用。

与上述后台应用的唤醒方法实施例2相对应,本申请提供了一种后台应用的唤醒装置实施例2。如图5所示,本实施例可以具体包括:通知方法调用模块501、子线程创建模块502、睡眠时长确定模块503、子线程睡眠子模块504、子线程唤醒子模块505及子线程唤醒应用模块506。

需要说明的是,有关通知方法调用模块501、子线程创建模块502及子线程唤醒应用模块506的说明可以参见上述后台应用的唤醒装置实施例1,以下并不赘述,仅对其他模块进行详细说明。

睡眠时长确定模块503,用于确定目标睡眠时长。

子线程睡眠子模块504,用于执行睡眠至指定日期方法,以维持子线程在目标睡眠时长内睡眠。

可选地,子线程睡眠子模块504具体包括:系统注册子线程单元。

其中:系统注册子线程单元,用于在系统时间管理进程中,注册子线程的睡眠时间为目标睡眠时长,以维持子线程在目标睡眠时长内睡眠;

子线程唤醒子模块505,用于在子线程的睡眠时长达到目标睡眠时长时,唤醒处于睡眠状态的子线程。

可选地,子线程唤醒子模块505具体包括:系统唤醒子线程单元。

其中:系统唤醒子线程单元,用于响应于系统时间管理进程的唤醒指令,唤醒处于睡眠状态的子线程。

在实际应用中,上述后台应用的唤醒装置中的睡眠时长确定模块503可以具体包括:睡眠时长确定子模块。

其中:睡眠时长确定子模块,用于获取用户输入的时间值作为目标睡眠时长;或,获取预设时间值作为目标睡眠时长。

上述的后台应用的唤醒装置中,子线程唤醒模块404可以具体包括:用户操作唤醒子模块;其中:

用户操作唤醒子模块,用于响应于用户对目标应用的唤醒操作,唤醒子线程。

上述的后台应用的唤醒装置中,子线程被唤醒后绑定有目标应用的目标方法;相应地,子线程唤醒应用模块405可以具体包括:应用方法执行子模块。

其中,应用方法执行子模块,用于在子线程被唤醒后,执行目标应用的目标方法。

另外,本申请还提供了一种电子设备,包括上述任意一种后台应用的唤醒装置。

本申请实施例还提供一种终端,该终端可以包括上述的后台应用的唤醒方法,对于后台应用的唤醒方法的描述可参照上文对应部分描述,此处不再赘述。

下面对本申请实施例提供的终端的硬件结构进行描述,下文描述中涉及后台应用的唤醒的部分可参照上文对应部分描述。图6为本申请实施例提供的终端的硬件结构示意图,参照图6,该终端可以包括:

处理器1,通信接口2,存储器3,通信总线4,和显示屏5;

其中处理器1、通信接口2、存储器3和显示屏5通过通信总线4完成相互间的通信;

可选的,通信接口2可以为通信模块的接口,如GSM模块的接口;

处理器1,用于执行程序;

存储器3,用于存放程序;

程序可以包括程序代码,程序代码包括处理器的操作指令。

处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。

存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

其中,程序可具体用于:

响应于用户对目标应用的切换至后台操作,将目标应用切换至后台,并调用目标应用的切换到后台的通知方法;切换到后台的通知方法包括:子线程创建函数及子线程睡眠函数;

执行子线程创建函数,以创建与目标应用具有绑定关系的子线程;

执行子线程睡眠函数,以睡眠子线程,在达到目标唤醒条件时,唤醒子线程;

触发子线程唤醒切换至后台的目标应用。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例, 而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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