目标应用程序的选取方法及装置与流程

文档序号:12801758阅读:252来源:国知局
目标应用程序的选取方法及装置与流程

本申请涉及计算机技术领域,尤其涉及一种目标应用程序的选取方法及装置。



背景技术:

传统技术中,从移动终端的已开启窗口或者已运行的应用程序中选取目标应用程序的方法有两种:

第一,判断当前应用程序是否在正在运行的任务列表(runningtaskinfo)中,若不是,则将当前应用程序选取为目标应用程序,然而,因为前述任务列表是通过操作系统提供的应用程序编程接口(applicationprogramminginterface,api)函数获取的,对于不提供该api函数的操作系统(如,android5.0),则无法获取任务列表,从而也就无法选取目标应用程序,由此可以看出,该方法的适用性较差。

第二,判断当前应用程序是否在正在运行的进程(runningprocess)列表,若不是,则将当前应用程序选取为目标应用程序,然而由于有些应用程序存在常驻的业务(service),其可能一直存在于进程列表中,因此根据该方法选取的目标应用程序可能是不准确的,进而浪费了计算机资源。



技术实现要素:

本申请实施例提供了一种目标应用程序的选取方法及装置,可以提高目标应用程序选取的准确性和适用性。

第一方面,提供了一种目标应用程序的选取方法,该方法包括:

获取移动终端上已开启窗口或者已运行的应用程序;

监测对所述应用程序的activity执行的目标事件;

根据所述目标事件的执行次数,确定已创建的activity的数量;

若所述已创建的activity的数量满足预设条件,则将所述应用程序选取为目标应用程序。

第二方面,提供了一种目标应用程序的选取装置,该装置包括:

获取单元,用于获取移动终端上已开启窗口或者已运行的应用程序;

监测单元,用于监测对所述获取单元获取的所述应用程序的activity执行的目标事件;

确定单元,用于根据所述监测单元监测的所述目标事件的执行次数,确定已创建的activity的数量;

选取单元,用于若所述确定单元确定的所述已创建的activity的数量满足预设条件,则将所述应用程序选取为目标应用程序。

本申请提供的目标应用程序的选取方法及装置,根据应用程序的activity的目标事件的执行次数,确定已创建的activity的数量,之后根据已创建的activity的数量,来选取目标应用程序;也即本申请是通过监测应用程序中已创建activity的数量,来选取目标应用程序的,由此,可以解决传统的通过判断当前应用程序是否在任务列表或者进程列表,而导致的选取的目标应用程序不准确的问题。

附图说明

图1为本申请提供的activity的生命周期示意图;

图2为本申请一种实施例提供的目标应用程序的选取方法流程图;

图3为本申请再一种实施例提供的目标应用程序的选取装置示意图。

具体实施方式

下面结合附图,对本发明的实施例进行描述。

本申请提供的目标应用程序的选取方法及装置,适用于从移动终端的已开启窗口或者已运行的应用程序中选取目标应用程序的场景,尤其适用于根据应用程序中已创建的activity的数量,选取目标应用程序的场景。此处的移动终端可以为手机或者平板电脑等,移动终端的操作系统可以为安卓(android)系统;目标应用程序是指移动终端上已开启窗口或者已运行的应用程序中未被切换至前台的应用程序,其通常会被包含在移动终端的任务管理界面中,其中,任务管理界面可以由用户双击移动终端上的home键或者长按移动终端上的菜单键触发。

需要说明的是,上述activity是指应用程序中负责与用户交互的组件,其通常就是一个单独的屏幕,该屏幕上可以显示一些控件,也可以监听并处理用户的事件,其生命周期可以如图1所示。图1中,开始(onstart())事件用于新增一个activity,而结束(onstop())事件用于减少一个activity。从图1中可以看出,应用程序中最终的activity的数量与该应用程序是否在前台是息息相关的,一旦该应用程序从前台切换至后台,则应用程序中activity的数量就会为0。而本申请正是根据应用程序中activity的数量,来选取目标应用程序。

以下将通过实施例的方式来对本申请的目标应用程序的选取方法进行说明。

图2为本申请一种实施例提供的目标应用程序的选取方法流程图。该方法的执行主体可以为具有处理能力的设备:服务器或者系统或者装置,如图2所示,该方法具体可以包括:

步骤210,获取移动终端上已开启窗口或者已运行的应用程序。

可以理解的是,上述已开启窗口或者已运行的应用程序的个数可以为一或多个。

移动终端上已开启窗口或者已运行的一个或多个应用程序会被包含在任务管理界面中,该任务管理界面可以由用户双击移动终端上的home键或者长按移动终端上的菜单键触发。需要说明的是,在某一时刻,这些已开启窗口或者已运行的一个或多个应用程序中只有一个应用程序会被切换至前台,而其它应用程序则运行在后台,这些运行在后台的其它应用程序也会耗费计算机的内存等资源。

步骤220,监测对应用程序的activity执行的目标事件。

此处,目标事件可以包括图1中所示的开始事件(onstart())以及结束事件(onstop())。

在一种实现方式中,步骤220具体可以为:

步骤a:创建应用程序的activity生命周期监测类的实例。

在移动终端的操作系统为android时,此处的activity生命周期监测类可以为android的activitylifecyclecallbacks类,通过该类的实例可以监测应用程序中每个activity的生命周期。

步骤b:通过该实例,监测对activity执行的目标事件。

需要说明的是,activitylifecyclecallbacks类的实例包括了两个方法:onactivitystarted()和onactivitystopped(),通过该两个方法可以监测对activity执行的开始事件和结束事件。具体地,当对activity执行了图1中的onstart()事件,就会相应的触发activitylifecyclecallbacks类的实例中的onactivitystarted();当对activity执行了图1中的onstop()事件,就会相应的触发activitylifecyclecallbacks类的实例中的onactivitystopped()。由此可以说明,onactivitystarted()的执行次数与onstart()的执行次数是相同的,onactivitystopped()的执行次数与onstop()的执行次数是相同的。也即通过统计onactivitystarted()的执行次数,来确定activity的开始事件的执行次数,相应的,通过统计onactivitystopped()的执行次数,来确定activity的结束事件的执行次数。

步骤230,根据目标事件的执行次数,确定已创建的activity的数量。

在一种具体实现方式中,可以分别统计activity的开始事件的执行次数以及结束事件的执行次数,之后将activity的开始事件的执行次数以及结束事件的执行次数的差值作为已创建的activity的数量。

在另一种具体实现方式中,也可以通过计数器的计数值,来确定已创建的activity的数量,具体可参见如下所示的实现代码:

在上述实现代码中,可以初始化一个计数器mactivitycount,当activitylifecyclecallbacks类的实例的onactivitystarted()被执行时,也即当activity的开始事件被执行时,计数器mactivitycount加一;当activitylifecyclecallbacks类的实例的onactivitystopped()被执行时,也即当activity的结束事件被执行时,计数器mactivitycount减一;之后将计数器的计数值作为已创建的activity的数量。

步骤240,若已创建的activity的数量满足预设条件,则将应用程序选取为目标应用程序。

此处,可以将已创建的activity的数量为0判断为满足预设条件,也即本申请将已创建的activity的数量为0的应用程序选取为目标应用程序,而根据上述所述的内容可知,已创建的activity的数量为0的应用程序即为切换至后台的应用程序,也即本申请选取的目标应用程序可以为已开启窗口或者已运行的应用程序中未被切换至前台的应用程序,然而由于这些未被切换至前台的应用程序往往也会占用内存等资源,因此,在一种场景下,在选取出上述目标应用程序之后,可以将该目标应用程序的相关信息发送至计算机的资源管理模块,从而该资源管理模块可以释放目标应用程序的内存等资源,由此可以达到节约计算机资源的目的。

当然,在实际应用中,对选取的目标应用程序还可以做其它处理,本申请对此不作限定。

综上,本申请是通过监测应用程序中已创建activity的数量,来选取目标应用程序的,而根据图1所示的内容可以看出,应用程序中最终的activity的数量与该应用程序是否在前台是息息相关的,一旦该应用程序从前台切换至后台,则应用程序中activity的数量就会为0,因此根据本申请提供的目标应用程序的选取方法可以提高目标应用程序选取的准确性;此外,由于activity是android系统中一定会存在的应用程序组件,从而根据本申请提供的目标应用程序的选取方法可以提高目标应用程序选取的适用性。

与上述目标应用程序的选取方法对应地,本申请实施例还提供的一种目标应用程序的选取装置,如图3所示,该装置包括:

获取单元301,用于获取移动终端上已开启窗口或者已运行的应用程序。

监测单元302,用于监测对获取单元301获取的应用程序的activity执行的目标事件。

监测单元302具体用于:

创建应用程序的activity生命周期监测类的实例;

通过该实例,监测对activity执行的目标事件。

确定单元303,用于根据监测单元302监测的目标事件的执行次数,确定已创建的activity的数量。

可选地,目标事件可以包括开始事件以及结束事件;

确定单元303具体用于:

将开始事件的执行次数与结束事件的执行次数的差值作为已创建的activity的数量。

可选地,目标事件可以包括开始事件以及结束事件;

确定单元303具体用于:

初始化计数器;

若开始事件被执行,则将计数器加一;

若结束事件被执行,则将计数器减一;

根据计数器的计数值,确定已创建的activity的数量。

选取单元304,用于若确定单元303确定的已创建的activity的数量满足预设条件,则将应用程序选取为目标应用程序。

在一种实现方式中,若已创建的activity的数量为第一数值,则判断为已创建的activity的数量满足预设条件。

本申请实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本申请提供的装置的具体工作过程,在此不复赘述。

本申请提供的目标应用程序的选取装置,获取单元301获取移动终端上已开启窗口或者已运行的应用程序;监测单元302监测对应用程序的activity执行的目标事件;确定单元303根据目标事件的执行次数,确定已创建的activity的数量;若已创建的activity的数量满足预设条件,则选取单元304将应用程序选取为目标应用程序。由此,可以提高目标应用程序选取的准确性和适用性。

专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的对象及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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