结束应用程序的方法及装置与流程

文档序号:11590037阅读:184来源:国知局

本发明涉及计算机和通信技术领域,特别涉及一种结束应用程序的方法及装置。



背景技术:

随着智能终端技术的不断发展,智能终端可以安装越来越多的应用程序,但是用户在使用这些应用程序的过程中,即使用户退出了当前应用程序,如果用户没有进入设置杀死该应用程序,该应用程序依然会继续在后台运行,因此经常导致应用程序关闭不及时,使一些并没有执行任何操作的应用程序也运行在智能终端中,从而导致缩短智能终端续航时间,浪费系统资源智能终端的问题。

为了解决上述问题,目前引入了如下方法:在智能终端锁屏后,获取智能终端后台运行的每一个应用程序,从该应用程序中获取黑名单中包括的应用程序,然后结束该黑名单中包括的应用程序。黑名单是用户事先设置的,在该黑名单中记载了智能终端锁屏后要结束的应用程序。

在实现本发明的过程中,发明人发现现有技术至少存在以下问题:

结束操作是根据黑名单进行,很有可结束了黑名单中正在执行任务的应用程序,结束应用程序不够严谨。



技术实现要素:

为了解决现有技术的问题,本发明实施例提供了一种结束应用程序的方法及装置。所述技术方案如下:

根据本公开实施例的第一方面,本公开第一方面提供了结束应用程序的方法,所述方法包括:

在检测出第一应用程序从终端的前台切换到后台时,确定所述第一应用程序在执行任务时需要调用的系统资源;

根据所述第一应用程序在执行任务时需要调用的系统资源,判断当前所述第一应用程序是否在执行任务;

如果判断出当前所述第一应用程序未执行任务,则结束所述第一应用程序在所述终端的后台继续运行。

根据本公开实施例的第二方面,本公开第二方面提供了结束应用程序的装置,所述装置包括:

确定模块,用于在检测出第一应用程序从终端的前台切换到后台时,确定所述第一应用程序在执行任务时需要调用的系统资源;

判断模块,用于根据所述确定模块确定的所述第一应用程序在执行任务时需要调用的系统资源,判断当前所述第一应用程序是否在执行任务;

结束模块,用于如果所述判断模块判断出当前所述第一应用程序未执行任务,则结束所述第一应用程序在所述终端的后台继续运行。

本发明实施例提供的技术方案带来的有益效果是:

由于该结束应用程序的方法是在终端内应用程序进入后台后就可以执行,也即该结束应用程序的方法可以在用户使用终端的任意时刻进行,解决了不能在使用终端时及时结束没有执行任何任务的应用程序的问题,达到了提高结束应用程序及时性的效果;而且该结束应用程序的方法是在该应用程序没有执行任何任务时才结束,解决了结束应用程序不严谨的问题,提高了结束应用程序的精确性的效果。

附图说明

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

图1是本公开应用的网络架构图;

图2是本发明一个实施例提供的一种结束应用程序的方法流程图;

图3a是本发明再一个实施例提供的一种结束应用程序的方法流程图;

图3b是本发明再一个实施例提供的一种确定第一应用程序执行任务时所调用的各api的方法流程图;

图3c是本发明再一个实施例提供的一种检测第一应用程序当前是否提供了可交互的用户界面ui的方法流程图;

图4a是本发明一个实施例提供的一种结束应用程序的装置结构示意图;

图4b是本发明另一个实施例提供的一种确定该第一应用程序在执行任务时需要调用的系统资源的装置的结构示意图;

图4c是本发明另一个实施例提供的一种确定该第一应用程序在执行任务时需要调用的系统资源的装置的结构示意图;

图4d是本发明另一个实施例提供的一种判断当前该第一应用程序是否在执行任务的装置的结构示意图;

图4e是本发明一个实施例提供的一种结束应用程序的装置结构示意图;

图4f是本发明一个实施例提供的一种确定第一应用程序在执行任务时需要调用的系统资源的装置的结构示意图;

图5是本发明一个实施例提供的结束应用程序电子设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。文中所讲的“电子设备”可以包括智能手机、平板电脑、智能电视、电子书阅读器、mp3播放器(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)、mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。

图1是本发明实施例应用的网络架构图,参见图1,该网络架构可以包括但不限于至少一个服务器120和终端140。

该服务器120,用于统计并保存应用程序与应用类型的对应关系,应用程序与第一关闭时间的对应关系,有关第一关闭时间在下述实施例中具体介绍。

该终端140可以安装并运行应用程序,该终端140安装系统,可以为应用程序提供系统资源,该应用程序可以通过调用该系统资源执行任务。该系统资源可以为应用程序编程接口api。

该终端140可以存储并保存数据,并通过有线或是无线网络从该服务器120 下载数据资源。比如,可以存储应用类型与功能的对应关系等。

该服务器120与该终端140可通过有线或是无线网络连接。

图2是本发明一个实施例提供的一种结束应用程序的方法的方法流程图,参见图2,该方法包括但不限于:

在步骤201中,在检测出第一应用程序从终端的前台切换到后台时,确定该第一应用程序在执行任务时需要调用的系统资源。

在步骤202中,根据该第一应用程序在执行任务时需要调用的系统资源,判断当前该第一应用程序是否在执行任务。

在步骤203中,如果判断出当前该第一应用程序未执行任务,则结束该第一应用程序在该终端的后台继续运行。

综上所述,本实施例提供的结束应用程序的方法,在终端内应用程序由前台切换到后台时,获取该应用程序在执行任务时需要调用的系统资源,根据该执行任务时需要的调用的系统资源判断该应用程序是否在执行任务,如果该应用程序没有执行任何任务则结束该应用程序;由于该结束应用程序的方法是在终端内应用程序进入后台后就可以执行,也即该结束应用程序的方法可以在用户使用终端的任意时刻进行,解决了不能在使用终端时及时结束没有执行任何任务的应用程序的问题,达到了提高结束应用程序及时性的效果;而且该结束应用程序的方法是在该应用程序没有执行任何任务时才结束,解决了结束应用程序不严谨的问题,提高了结束应用程序的精确性的效果。

图3a是本发明再一个实施例提供的一种结束应用程序的方法的方法流程图,该方法在终端内应用程序由前台切换到后台时,确定该应用程序在执行任务时需要调用的系统资源,根据该执行任务时需要的调用的系统资源判断该应用程序是否在执行任务,如果该应用程序没有执行任何任务则结束该应用程序。在本实施例中该系统资源可以为api。参见图3a,该方法包括但不限于:

在步骤301中,实时检测第一应用程序在终端内的运行状态。

该第一应用程序指终端内前台和后台运行的应用程序。

该运行状态可包括前台运行和后台运行。

可选的,在本实施例中可以通过检测该第一应用程序的界面状态来判断该 第一应用程序的运行状态。具体的,当该第一应用程序的界面中存在至少一个界面在前台运行,则确定该第一应用程序的运行状态为前台运行状态;当检测到该第一应用程序的所有的界面在后台运行,则确定该第一应用程序的运行状态为后台运行状态。

可选的,该界面可以是activity、图标或其它界面。

可选的,在本实施例中可以使用注入技术检测该第一应用程序的界面在终端内的运行状态。例如,当该界面为activity时,具体过程可包括但不限于如下方法检测该activity的运行状态:编写activity状态监控代码,将该activity状态监控代码注入到系统服务进程中,该系统服务进程可管理终端内所有的activity的运行状态,使得在运行该系统服务进程时,运行该监控代码,当该activity栈顶的activity发生变化时通知终端。例如,如果当前栈顶的activity是该第一应用程序的activity,则当监控到栈顶的activity发生变化时,则通知终端该第一应用程序的activity从栈顶出栈,然后继续监控当前栈顶的activity状态。

通过注入技术监控activity栈顶的状态变化,可以在activity状态发生变化时获得回调,而不需要通过循环遍历activity栈顶来获取当前栈顶的activity,大大减少了系统资源占用。

对于实时检测该第一应用程序在终端内的运行状态,上述检测方法仅用于举例,本实施例中的检测方法并有限制于该方法。

在步骤302中,在检测出该第一应用程序从终端的前台切换到后台时,将该第一应用程序的程序标识从缓存队列的队尾入队。

该缓存队列为先进行先出缓存队列,用于存储小于或等于预设阈值个从终端前台切换到后台的应用程序的程序标识,具体如下:当检测出有应用程序从终端的前台切换到后台时,该应用程序对应的程序标识都从该缓存队列的队尾入队,存储在该缓存队列中;以及当该缓存队列中存储的程序标识的数量大于预设的阈值时,则将该缓存队列的队头存储的程序标识出队,直到该缓存队列包括的程序标识数目不超过预设数值时为止。因此,使用该先进先出缓存队列可以使在该缓存队列存储的程序标识数量大于预设的阈值时,可以优先处理先进入该缓存队列的程序标识。

进一步的,该第一应用程序的程序标识从缓存队列的队尾入队以后,当检 测出该第一应用程序从该终端的后台切换到前台时,如果该第一应用程序的应用标识位于缓该存队列,将该第一应用程序的程序标识从该缓存队列中删除。因为当该第一应用程序从该终端的后台切换到前台时,说明该应用程序需要去执行任务,从而将程序标识从该缓存队列中删除,不进行后续有关判断是否结束该应用程序的操作,将该程序标识从该缓存队列中删除,不仅符合实际情况,还减少了后续有关判断,提高系统资源使用率。

在步骤303中,在该第一应用程序的程序标识入队后,如果该缓存队列包括的应用标识数目超过预设数值,则从该缓存队列的队头出队该缓存队列包括的程序标识,直到该缓存队列包括的程序标识数目不超过预设数值时为止。

本步骤可以为:当该第一应用程序入队后,获取当前该缓存队列中包括的程序标识的数量,将该程序标识的数量与预设数值进行比较,如果当前该程序标识的数量大于该预设数值时,使该缓存队列中的程序标识从该缓存队列的队头出队,直到该缓存队列包括的程序标识数目不超过预设数值时为止。

例如,该预设数值为3,当该第一应用程序入队后,获取到的当前该缓存队列中包括的程序标识的数量为4,因此缓存队列中包括的程序标识的数量大于预设数值,所以从该缓存队列的队头出队1个程序标识,使得该缓存队列包括的程序标识数目为3。

通过使用上述先进先出缓存队列不仅可以优先处理先进入该缓存队列的程序标识,还可以使该缓存队列中包括的程序标识的数量始终小于或等于预设阈值。由于距当前时间最近入队的预设阈值个程序标识对应的应用程序,是距当前最近时间从前台切换到后台的应用程序,所以该预设阈值个应用程序很可能是被频繁切换到前台使用,因此不对该最近从前台切换到后台的应用程序进行后续有关判断是否结束该应用程序的操作,不仅符合实际情况,还减少了后续有关判断,提高系统资源使用率。

在步骤304中,当该第一应用程序的应用标识从该缓存队列的队头出队时,确定该第一应用程序对应的第一关闭时间,并将该第一应用程序的程序标识和该第一关闭时间的对应关系存储在等待列表中。

该第一关闭时间在当前时间之后,具体为从该第一应用程序的应用标识从该缓存队列的队头出队到需要开始判断是否结束该第一应用程序为止,对于判断是否结束该第一应用程序在后面步骤中具体介绍。

可选的,该第一关闭时间可以通过如下方法得到:针对每一个应用程序,服务器统计大量用户从该应用程序进入后台运行到关闭该应用程序之间的平均时间长度,将该平均时间长度确定为该应用程序的第一等待时长,并将该应用程序的程序标识和该第一等待时长存储在程序标识与第一关闭时间的对应关系表中。终端从服务器获取该程序标识与第一等待时长的对应关系表,并保存在本地,当需要确定该第一应用程序对应的第一关闭时间时,首先获取该第一应用程序的程序标识,将该获取到的第一程序标识与该对应关系表中的程序标识进行比对,查询出与该获取到的第一程序标识相同的程序标识,从该对应关系表中获取查询的程序标识对应的第一等待时长,将该第一等待时长与当前时间相加得到该第一应用程序的第一关闭时间。

该等待列表中存储了从该缓存队列中出队的程序标识,且该程序标识对应的第一关闭时间还没有到达。

可选的,在该等待列表中按照各程序标识对应的第一关闭时间的先后对各程序标识进行排序。

需要说明的是,将该第一应用程序的程序标识和该第一关闭时间的对应关系存储在等待列表中以后,如果当检测出该第一应用程序从该终端的后台切换到前台时,如果该第一应用程序的应用标识位于等待列表,将该第一应用程序的程序标识和该第一关闭时间从所等待列表中删除。因为当该第一应用程序从该终端的后台切换到前台时,说明该应用程序需要去执行任务,因此停止后续有关判断是否结束该应用程序的操作,将该程序标识从该等待列表中删除,不仅符合实际情况,还减少了后续有关判断,提高系统资源使用率。

在步骤305中,对该等待列表存储的关闭时间进行实时检测,如果检测出该第一关闭时间到达时,从该等待列表中获取该第一关闭时间对应的该第一应用程序的程序标识。

本步骤可以为:将将该第一应用程序的程序标识和该第一关闭时间的对应关系存储在等待列表中后,实时检测各第一关闭时间,当检测出该第一关闭时间到达时,从该等待列表中获取该第一关闭时间对应的该第一应用程序的程序标识。

在步骤306中,根据该第一应用程序的程序标识,确定该第一应用程序执行任务时所调用的各api。

可选的,参见图3b,可通过如下方法确定该第一应用程序执行任务时所调用的各api,如图3b所示,该包括但不限于:

在步骤3061中,根据该第一应用程序的程序标识,从程序标识与应用类型的对应关系中获取该第一应用程序的应用类型。

该程序标识与应用类型的对应关系可以通过如下方法获得:该程序标识与应用类型的对应关系是由服务器统计得到,服务器根据每一个应用程序的功能为该每一个应用程序设置应用类型,例如,qq聊天工具设置为社交类型,qq音乐设置为播放类型等,并将该应用程序的程序标识与该应用类型的对应关系存储在第一对应关系表中;终端从服务器获取该第一对应关系表,并保存在本地,以便在需要时可以及时从本地获取。

本步骤可以为:当获取到该第一应用程序的程序标识时,将该第一应用程序的程序标识与该第一对应关系表中的每一个程序标识进行比对,获取与该第一应用程序的程序标识相同的程序标识,从该第一对应关系表中查询与该获取的程序标识对应的应用类型,将该查询的应用类型确定为该第一应用程序对应的应用类型。

在步骤3062中,根据该应用类型,从应用类型与功能的对应关系中确定该第一应用程序包括的各功能。

该应用类型与功能的对应关系存储在第二对应关系表中,该第二对应关系表可以通过但不限于如下方法得到:获取第一类型应用程序包括的第一个应用程序,分析该第一个应用程序的功能,记录分析得到该第一个应用程序的功能,然后获取第一类型应用程序包括的第二个应用程序,分析该第二个应用程序的功能,记录分析得到该第二个应用程序的功能,然后再获取第一类型应用程序包括的第三个应用程序,分析该第三个应用程序的功能,记录分析得到该第三个应用程序的功能,直到分析完所有的第一类型应用程序包括的每个应用程序,并将分析得到的每个应用程序的功能取并集,将该并集内的所有的功能作为该第一类型应用程序的第一功能,将该第一类型应用程序与该第一功能的对应关系存储在该第二对应关系表中。按照如上方法,将第二类型应用程序与第二功能的对应关系存储在该第二对应关系表中,将第三类型应用程序与第三功能的对应关系存储在该第二对应关系表中,直到将存储完所有类型的应用程序与功能的对应关系。

本步骤可以为:将从步骤3062中获取得到的应用类型与该第二对应关系表中的每一个应用类型进行比对,从该第二对应关系表中确定与步骤3062中获取得到的应用类型相同的应用类型,从该第二对应关系表中查询该获取到的应用类型对应的功能,将该查询到的功能确定该第一应用程序包括的各功能。

在步骤3063中,根据该第一应用程序包括的各功能,从功能与api的对应关系中获取该第一应用程序执行该各功能所要调用的各api。

应用程序每执行一个功能都需要调用一个api,将该功能与api的对应关系存储在第三对应关系表中。

获取该第一应用程序的第一功能,将该第一功能与该第三对应关系中的每一个功能做比较,得到与该第一功能相同的功能,将该功能对应的api确定为该第一应用程序执行该第一功能所要调用的api;获取该第一应用程序的第二功能,将该第二功能与该第三对应关系中的每一个功能做比较,得到与该第二功能相同的功能,将该功能对应的api确定为该第一应用程序执行该第二功能所要调用的api;获取该第一应用程序的第三功能,将该第三功能与该第三对应关系中的每一个功能做比较,得到与该第三功能相同的功能,将该功能对应的api确定为该第一应用程序执行该第三功能所要调用的api,直到获取完该第一应用程序的所有功能对应的api为止。

在步骤307中,根据该各api判断当前该第一应用程序是否在执行任务。

本步骤可以为:判断当前第一应用程序是否在调用或运行确定的各api中的一个或多个,当判断出当前第一应用程序正在调用或运行该各api中的一个或多个,则确定当前该第一应用程序在执行任务;当判断出当前该第一应用程序没有调用或运行各api中任何一个,则确定当前该第一应用程序没有执行任务。

如果判断出当前该第一应用程序正在执行任务,则执行步骤308;如果判断出当前该第一应用程序没有执行任何任务,则执行步骤310的操作。

在步骤308中,如果判断出当前该第一应用程序正在执行任务,则确定该第一应用程序的第二关闭时间。

如果判断出当前该第一应用程序正在执行任务,由于该第一应用程序正在执行任务,所以不能结束该第一应用程序,需要为该第一应用程序重新设置关闭时间,以等待再次判断是否结束该第一应用程序,该再次设置的关闭时间即 为该第二关闭时间。

该第二关闭时间在该第一关闭时间之后,该第二关闭时间可以通过如下方法得到:为该第一应用程序设置第二等待时长,将该第二等待时长与第一关闭时间相加,得到第二关闭时间。该第二等待时长可以设置为任意数值,但是一般情况下,该第二等待时长小于该第一等待时长,可根据经验将该第二等待时长设置为3分钟或4分钟,在此不做限制。

在为该第一应用程序确定了第二关闭时间后,将该第一应用程序对应的应用程序标识再次存储在上述等待列表中,以等待该第二关闭时间到达。

在步骤309中,在该第二关闭时间到达时,执行根据该各api判断当前该第一应用程序是否在执行任务。

本步骤可以为:当该第二关闭时间到达时,再次执行步骤307的操作,以判断当前该第一应用程序是否在执行任务,当判断出当前该第一应用程序正在执行任务时,则再次为该第一应用程序确定该第二关闭时间。重复上述过程直到判断出当前该第一应用程序未执行任务时,执行步骤310的操作。

在步骤310中,如果判断出当前该第一应用程序未执行任务,则检测该第一应用程序当前是否提供了可交互的ui。

可选的,参见图3c,可以通过如下方法检测该第一应用程序当前是否提供了可交互的ui,如图3c所示该检测方法包括但不限于:

在步骤3101中,判断该第一应用程序是否处于前台运行。

该第一应用程序的运行状态可以为前台运行,后台运行和关闭。当该第一应用程序的运行状态为前台运行时,则说明该第一应用程序正在执行任务,此时该第一应用程序会提供一个可交互的ui与用户交互,则确定该第一应用程序当前提供了可交互的ui。

可选的,可通过如下方法判断该第一应用程序是否处于前台运行:获取系统activity栈内栈顶的activity,根据该栈顶的activity判断该第一应用程序是否在前台运行。在activity栈内管理了应用程序内所有的activity,activity栈顶的activity是当前正在前台运行的activity,获取该activity栈顶的activity,如果该activity是该运行在该第一应用程序内的activity,则确定该第一应用程序是在前台运行。说明该应用程序正在执行任务,所以不结束该应用程序。

其中,activity与上述activity含义相同,在这里不做赘述。

如果在本步骤中判断出该第一应用程序当前处于前台运行,则执行步骤311,如果判断出该第一应用程序当前没有处于前台运行,则执行步骤3102。

在步骤3102中,判断该第一应用程序的程序标识是否在通知栏列表内。

终端通知栏列表内存储了终端内正在后台运行的部分的应用程序,该应用程序有可能正在执行任务,而且用户还可以通过该通知栏内显示的ui界面,对应用程序进行操作,完成用户交互。所以当检测到该通知栏列表内包括该第一应用程序的程序标识时,则说明该第一应用程序正在执行任务或很可能在很短的时间内开始执行任务。所以不结束该应用程序。

如果在本步骤中判断出该第一应用程序的程序标识在通知栏列表内,则执行步骤311,如果判断出该第一应用程序的程序标识没有在通知栏列表内,则执行步骤3103。

在步骤3103中,判断该第一应用程序的程序标识在进程优先级列表的级别是否处于预设的优先级别内。

该进程优先级列表内保存了该终端内进程的优先级别,该进程优先级别可根据终端内进程的运行状态进行动态调整。一般情况下,进程优先级别按照如下顺序依次降低:前台运行的进程,可视进程,次要服务进程,后台进程,内容供应节点进程,空进程。其中,前台运行的进程是正在执行任务的进程,可视进程是很可能在很短时间内开始执行任务的进程。

所以可以通过获取进程优先级列表的内容,如果该第一应用程序内的进程有至少一个为前台进程或可视进程时,则认为该第一应用程序当前提供了可交互的ui,不结束该第一应用程序。

有关上述前台进程,可视进程,次要服务进程,后台进程,内容供应节点进程,空进程的含义均为现有技术在此不做阐述。

如果在本步骤中判断出该第一应用程序的程序标识在进程优先级列表的级别是否处于预设的优先级别内,则执行步骤311,如果判断出该第一应用程序的程序标识在进程优先级列表的级别没有处于预设的优先级别内,则执行步骤312。

在步骤311中,检测出该第一应用程序当前提供了可交互的ui,则确定该应用程序的第二关闭时间。

如果在步骤310中检测出该第一应用程序当前提供了可交互的ui,则说明 该第一应用程序正在执行任务或在很短的时间内开始执行任务,所以不能结束该第一应用程序,需要为该第一应用程序重新设置关闭时间,以等待再次判断是否结束该第一应用程序,该再次设置的关闭时间即为该第二关闭时间。

该第二关闭时间在该第一关闭时间之后,该第二关闭时间可以设置为任意数值,一般情况下可根据经验进行设置,可设置为3分钟或4分钟,在此不做限制。

在为该第一应用程序确定了第二关闭时间后,将该第一应用程序对应的应用程序标识再次存储在上述等待列表中,并再次为该第一程序标识计时,以等待该第二关闭时间到达。当该第二关闭时间到达时,执行步骤309的操作。

在步骤312中,如果检测该第一应用程序当前没有提供了可交互的ui,则结束该第一应用程序在该终端的后台继续运行。

结束该第一应用程序指将该第一应用程序关闭,并注销该应用程序在系统中注册的广播和闹钟,禁止该应用程序自启动。

由于只有当在步骤307中判断出当前该第一应用程序没有执行任何任务时才执行步骤310中的检测该第一应用程序当前是否提供了可交互的ui,所以当在该步骤310中检测出该第一应用程序当前提供了可交互的ui,则说明该第一应用程序即没有正在执行任务也不会在很短时间内开始执行任务,所以结束该第一应用程序在该终端的后台继续运行。

需要说明的是,上述判断是否结束该第一应用程序的方法可以在用户使用该终端的任意时刻进行;如果该终端锁屏了,可通过如下方法对该终端进行结束操作:当终端锁屏后,开始计时,当该终端的锁屏时间达到预设的锁屏时间时,将上述缓存队列中的程序标识逐个出队,然后执行上述步骤304的操作。

可选的,本实施例可以应用在安装安卓系统的手机内,因为在该手机内运行的应用程序,当应用程序的运行状态从前台进入后台后,手机并不会结束应用程序,只有当手机内存不足时,才会结束运行在后台的应用程序,这样导致手机后台会运行并没有执行任务的应用程序,该应用程序会占用系统资源,消耗手机能源;因此通过本实施例提供的方法结束后台内没有执行任务的应用程序,以减少系统资源占用,减少手机能源消耗。

综上所述,本实施例提供的结束应用程序的方法,在终端内应用程序由前台切换到后台时,获取该应用程序在执行任务时需要调用的系统资源,根据该 执行任务时需要的调用的系统资源判断该应用程序是否在执行任务,如果该应用程序没有执行任何任务则结束该应用程序;由于该结束应用程序的方法是在终端内应用程序进入后台后就可以执行,也即该结束应用程序的方法可以在用户使用终端的任意时刻进行,解决了不能在使用终端时及时结束没有执行任何任务的应用程序的问题,达到了提高结束应用程序及时性的效果;而且该结束应用程序的方法是在该应用程序没有执行任何任务时才结束,解决了结束应用程序不严谨的问题,提高了结束应用程序的精确性的效果。

下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。

图4a本发明一个实施例提供的一种结束应用程序的装置的框图,参见图4a,该装置包括但不限于:确定模块401、判断模块402和结束模块403。

确定模块401,用于在检测出第一应用程序从终端的前台切换到后台时,确定该第一应用程序在执行任务时需要调用的系统资源。

判断模块402,用于根据该确定模块401确定的该第一应用程序在执行任务时需要调用的系统资源,判断当前该第一应用程序是否在执行任务。

结束模块403,用于如果该判断模块402判断出当前该第一应用程序未执行任务,则结束该第一应用程序在该终端的后台继续运行。

可选的,参见图4b,该确定模块401包括:第一确定子模块4011和第二确定子模块4012。

第一确定子模块4011,用于在检测出第一应用程序从终端的前台切换到后台时,确定该第一应用程序对应的第一关闭时间,该第一关闭时间在当前时间之后。

第二确定子模块4012,用于在该第一确定子模块4011确定的该第一关闭时间到达时,确定该第一应用程序在执行任务时需要调用的系统资源。

可选的,该系统资源包括应用程序编程接口api,参见图4c,该确定模块401还包括:第一获取子模块4013、第三确定子模块4014和第二获取子模块4015。

第一获取子模块4013,用于根据该第一应用程序的程序标识,从程序标识与应用类型的对应关系中获取该第一应用程序的应用类型。

第三确定子模块4014,用于根据该第一获取子模块4013获取的该应用类型,从应用类型与功能的对应关系中确定该第一应用程序包括的各功能。

第二获取子模块4015,用于根据该第三确定子模块4014确定的该第一应用程序包括的各功能,从功能与api的对应关系中获取该第一应用程序执行该各功能所要调用的各api。

可选的,该系统资源包括api,参见图4d,该判断模块402包括:第一判断子模块4021和第二判断子模块4022。

第一判断子模块4021,用于根据该第二获取子模块4015获取的该第一应用程序在执行任务时需要调用的api,判断当前该第一应用程序是否调用或运行该api。

第二判断子模块4022,用于如果该第一子判断模块4021判断出当前该第一应用程序调用或运行该api,则判断出当前该第一应用程序在执行任务。

可选的,参见图4e,该装置还包括:

检测模块404,用于检测该第一应用程序当前是否提供了可交互的ui,如果没有提供,则执行该结束该第一应用程序在该终端的后台继续运行的操作。

可选的,仍旧参见图4e,该装置还包括:

确定判断模块405,用于如果该判断模块402或该检测结束模块404判断出当前该第一应用程序正在执行任务或者检测出该第一应用程序当前供了可交互的ui,则确定该第一应用程序的第二关闭时间,该第二关闭时间在该第一关闭时间之后;在该第二关闭时间到达时,执行该根据该第一应用程序在执行任务时需要调用的系统资源,判断当前该第一应用程序是否在执行任务的操作。

可选的,仍旧参见图4e,该装置还包括:入队模块406和出队模块407。

入队模块406,用于在检测出第一应用程序从终端的前台切换到后台时,将该第一应用程序的程序标识从缓存队列的队尾入队。

出队模块407,用于在入队后如果该缓存队列包括的应用标识数目超过预设数值,则从该缓存队列的队头出队该缓存队列包括的程序标识,直到该缓存队列包括的程序标识数目不超过预设数值时为止。

该第一确定子模块4011,还用于当该第一应用程序的应用标识从该缓存队列的队头出队时,确定该第一应用程序对应的第一关闭时间。

可选的,仍旧参见图4e,该装置还包括:

存储模块408,用于当该第一应用程序的应用标识从该缓存队列的队头出队时,将该第一应用程序的程序标识和该第一关闭时间的对应关系存储在等待列表中。

参见图4f,该第二确定子模块4012,包括:检测获取单元4012a和确定单元4012b。

检测获取单元4012a,用于对该等待列表存储的关闭时间进行实时检测,如果检测出该第一关闭时间到达时,从该等待列表中获取该第一关闭时间对应的该第一应用程序的程序标。

确定单元4012b,用于根据该检测获取单元获4012a取得到的该第一应用程序的程序标识,确定该第一应用程序执行任务时所调用的系统资源。

可选的,仍旧参见图4e,该装置还包括:

删除模块409,用于当检测出该第一应用程序从该终端的后台切换到前台时,如果该第一应用程序的应用标识位于该缓存队列,将该第一应用程序的程序标识从该缓存队列中删除;如果该第一应用程序的应用标识位于等待列表,将该第一应用程序的程序标识和该第一关闭时间从所等待列表中删除。

可选的,本实施例可以应用在安装安卓系统的手机内,因为在该手机内运行的应用程序,当应用程序的运行状态从前台进入后台后,手机并不会结束应用程序,只有当手机内存不足时,才会结束运行在后台的应用程序,这样导致手机后台会运行并没有执行任务的应用程序,该应用程序会占用系统资源,消耗手机能源;因此通过本实施例提供的装置结束后台内没有执行任务的应用程序,以减少系统资源占用,减少手机能源消耗。

综上所述,本实施例提供的结束应用程序的装置,在终端内应用程序由前台切换到后台时,获取该应用程序在执行任务时需要调用的系统资源,根据该执行任务时需要的调用的系统资源判断该应用程序是否在执行任务,如果该应用程序没有执行任何任务则结束该应用程序;由于该结束应用程序的装置是在终端内应用程序进入后台后就可以开始执行任务,也即该结束应用程序的装置可以在用户使用终端的任意时刻进行,解决了不能在使用终端时及时结束没有执行任何任务的应用程序的问题,达到了提高结束应用程序及时性的效果;而且该结束应用程序的装置是在该应用程序没有执行任何任务时才结束该应用程序,解决了结束应用程序不严谨的问题,提高了结束应用程序的精确性的效果。

需要说明的是:上述实施例提供的结束应用程序的装置和终端在提供结束应用程序的时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的结束应用程序的装置盒终端与结束应用程序的方法的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

请参考图5,其示出了本发明一个实施例提供的结束应用程序的电子设备的结构示意图。该电子设备用于实施上述实施例中提供的结束应用程序的方法。具体来讲:

电子设备500可以包括rf(radiofrequency,射频)电路510、包括有一个或一个以上计算机可读存储介质的存储器520、输入单元530、显示单元540、传感器550、音频电路560、wifi(wirelessfidelity,无线保真)模块570、包括有一个或者一个以上处理核心的处理器580、以及电源590等部件。本领域技术人员可以理解,图5中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

rf电路510可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器580处理;另外,将涉及上行的数据发送给基站。通常,rf电路510包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(sim)卡、收发信机、耦合器、lna(lownoiseamplifier,低噪声放大器)、双工器等。此外,rf电路510还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于gsm(globalsystemofmobilecommunication,全球移动通讯系统)、gprs(generalpacketradioservice,通用分组无线服务)、cdma(codedivisionmultipleaccess,码分多址)、wcdma(widebandcodedivisionmultipleaccess,宽带码分多址)、lte(longtermevolution,长期演进)、电子邮件、sms(shortmessagingservice,短消息服务)等。

存储器520可用于存储软件程序以及模块,处理器580通过运行存储在存储器520的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器 520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备500的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器520还可以包括存储器控制器,以提供处理器580和输入单元530对存储器520的访问。

输入单元530可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元530可包括图像输入设备531以及其他输入设备532。图像输入设备531可以是摄像头,也可以是光电扫描设备。除了图像输入设备531,输入单元530还可以包括其他输入设备532。具体地,其他输入设备532可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

显示单元540可用于显示由用户输入的信息或提供给用户的信息以及电子设备500的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元540可包括显示面板541,可选的,可以采用lcd(liquidcrystaldisplay,液晶显示器)、oled(organiclight-emittingdiode,有机发光二极管)等形式来配置显示面板541。

电子设备500还可包括至少一种传感器550,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板541的亮度,接近传感器可在电子设备500移动到耳边时,关闭显示面板541和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于电子设备500还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。

音频电路560、扬声器561,传声器562可提供用户与电子设备500之间的音频接口。音频电路560可将接收到的音频数据转换后的电信号,传输到扬声 器561,由扬声器561转换为声音信号输出;另一方面,传声器562将收集的声音信号转换为电信号,由音频电路560接收后转换为音频数据,再将音频数据输出处理器580处理后,经rf电路510以发送给比如另一电子设备,或者将音频数据输出至存储器520以便进一步处理。音频电路560还可能包括耳塞插孔,以提供外设耳机与电子设备500的通信。

wifi属于短距离无线传输技术,电子设备500通过wifi模块570可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图5示出了wifi模块570,但是可以理解的是,其并不属于电子设备500的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。

处理器580是电子设备500的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器520内的软件程序和/或模块,以及调用存储在存储器520内的数据,执行电子设备500的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器580可包括一个或多个处理核心;优选的,处理器580可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器580中。

电子设备500还包括给各个部件供电的电源590(比如电池),优选的,电源可以通过电源管理系统与处理器580逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源590还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

尽管未示出,电子设备500还可以包括蓝牙模块等,在此不再赘述。

具体在本实施例中,电子设备500还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。上述一个或者一个以上程序包含用于进行以下操作的指令:

在检测出第一应用程序从终端的前台切换到后台时,确定所述第一应用程序在执行任务时需要调用的系统资源;

根据所述第一应用程序在执行任务时需要调用的系统资源,判断当前所述 第一应用程序是否在执行任务;

如果判断出当前所述第一应用程序未执行任务,则结束所述第一应用程序在所述终端的后台继续运行。

假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,所述电子设备500的存储器中,还包含用于执行以下操作的指令:

所述在检测出第一应用程序从终端的前台切换到后台时,确定所述第一应用程序在执行任务时需要调用的系统资源,包括:

在检测出第一应用程序从终端的前台切换到后台时,确定所述第一应用程序对应的第一关闭时间,所述第一关闭时间在当前时间之后;

在所述第一关闭时间到达时,确定所述第一应用程序在执行任务时需要调用的系统资源。

在第一种可能的实施方式作为基础而提供的第三种可能的实施方式中,所述电子设备500的存储器中,还包含用于执行以下操作的指令:

所述系统资源包括api,所述确定所述第一应用程序在执行任务时需要调用的系统资源,包括:

根据所述第一应用程序的程序标识,从程序标识与应用类型的对应关系中获取所述第一应用程序的应用类型;

根据所述应用类型,从应用类型与功能的对应关系中确定所述第一应用程序包括的各功能;

根据所述第一应用程序包括的各功能,从功能与api的对应关系中获取所述第一应用程序执行所述各功能所要调用的各api。

在第一种可能的实施方式作为基础而提供的第四种可能的实施方式中,所述电子设备500的存储器中,还包含用于执行以下操作的指令:

所述系统资源包括api,所述根据所述第一应用程序在执行任务时需要调用的系统资源,判断当前所述第一应用程序是否在执行任务,包括:

根据所述第一应用程序在执行任务时需要调用的api,判断当前所述第一应 用程序是否调用或运行所述api;

如果判断出当前所述第一应用程序调用或运行所述api,则判断出当前所述第一应用程序在执行任务。

在第一种可能的实施方式作为基础而提供的第五种可能的实施方式中,所述电子设备500的存储器中,还包含用于执行以下操作的指令:

所述结束所述第一应用程序在所述终端的后台继续运行之前,还包括:

检测所述第一应用程序当前是否提供了可交互的ui,如果没有提供,则执行所述结束所述第一应用程序在所述终端的后台继续运行的操作。

在第一种或第五种可能的实施方式作为基础而提供的第六种可能的实施方式中,所述电子设备500的存储器中,还包含用于执行以下操作的指令:

如果判断出当前所述第一应用程序正在执行任务或者检测出检测所述第一应用程序当前提供了可交互的ui,则确定所述第一应用程序的第二关闭时间,所述第二关闭时间在所述第一关闭时间之后;在所述第二关闭时间到达时,执行所述根据所述第一应用程序在执行任务时需要调用的系统资源,判断当前所述第一应用程序是否在执行任务的操作。

在第二种可能的实施方式作为基础而提供的第七种可能的实施方式中,所述电子设备500的存储器中,还包含用于执行以下操作的指令:

所述确定所述第一应用程序对应的第一关闭时间之前,还包括:

在检测出第一应用程序从终端的前台切换到后台时,将所述第一应用程序的程序标识从缓存队列的队尾入队;

在入队后如果所述缓存队列包括的应用标识数目超过预设数值,则从所述缓存队列的队头出队所述缓存队列包括的程序标识,直到所述缓存队列包括的程序标识数目不超过预设数值时为止;

所述确定所述第一应用程序对应的第一关闭时间,包括:

当所述第一应用程序的应用标识从所述缓存队列的队头出队时,确定所述第一应用程序对应的第一关闭时间。

在第七种可能的实施方式作为基础而提供的第八种可能的实施方式中,所述电子设备500的存储器中,还包含用于执行以下操作的指令:

当所述第一应用程序的应用标识从所述缓存队列的队头出队时,将所述第一应用程序的程序标识和所述第一关闭时间的对应关系存储在等待列表中;

所述在所述第一关闭时间到达时,确定所述第一应用程序在执行任务时需要调用的系统资源,包括:

对所述等待列表存储的关闭时间进行实时检测,如果检测出所述第一关闭时间到达时,从所述等待列表中获取所述第一关闭时间对应的所述第一应用程序的程序标识;

根据所述第一应用程序的程序标识,确定所述第一应用程序执行任务时所调用的系统资源。

应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”(“a”、“an”、“the”)旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。

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

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

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

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